codebase-context 1.2.1 → 1.5.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.
Files changed (96) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +144 -87
  3. package/dist/analyzers/angular/index.d.ts +1 -1
  4. package/dist/analyzers/angular/index.d.ts.map +1 -1
  5. package/dist/analyzers/angular/index.js +298 -309
  6. package/dist/analyzers/angular/index.js.map +1 -1
  7. package/dist/analyzers/generic/index.d.ts +1 -1
  8. package/dist/analyzers/generic/index.d.ts.map +1 -1
  9. package/dist/analyzers/generic/index.js +93 -47
  10. package/dist/analyzers/generic/index.js.map +1 -1
  11. package/dist/constants/codebase-context.d.ts +6 -0
  12. package/dist/constants/codebase-context.d.ts.map +1 -0
  13. package/dist/constants/codebase-context.js +8 -0
  14. package/dist/constants/codebase-context.js.map +1 -0
  15. package/dist/core/analyzer-registry.d.ts.map +1 -1
  16. package/dist/core/analyzer-registry.js +5 -7
  17. package/dist/core/analyzer-registry.js.map +1 -1
  18. package/dist/core/indexer.d.ts +9 -1
  19. package/dist/core/indexer.d.ts.map +1 -1
  20. package/dist/core/indexer.js +206 -139
  21. package/dist/core/indexer.js.map +1 -1
  22. package/dist/core/search.d.ts +1 -1
  23. package/dist/core/search.d.ts.map +1 -1
  24. package/dist/core/search.js +63 -59
  25. package/dist/core/search.js.map +1 -1
  26. package/dist/embeddings/openai.d.ts.map +1 -1
  27. package/dist/embeddings/openai.js +2 -2
  28. package/dist/embeddings/openai.js.map +1 -1
  29. package/dist/embeddings/transformers.d.ts +1 -1
  30. package/dist/embeddings/transformers.d.ts.map +1 -1
  31. package/dist/embeddings/transformers.js +19 -15
  32. package/dist/embeddings/transformers.js.map +1 -1
  33. package/dist/embeddings/types.d.ts +1 -1
  34. package/dist/embeddings/types.d.ts.map +1 -1
  35. package/dist/embeddings/types.js +3 -3
  36. package/dist/embeddings/types.js.map +1 -1
  37. package/dist/errors/index.d.ts +8 -0
  38. package/dist/errors/index.d.ts.map +1 -0
  39. package/dist/errors/index.js +11 -0
  40. package/dist/errors/index.js.map +1 -0
  41. package/dist/index.d.ts +6 -28
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +691 -336
  44. package/dist/index.js.map +1 -1
  45. package/dist/lib.d.ts +18 -18
  46. package/dist/lib.d.ts.map +1 -1
  47. package/dist/lib.js +23 -23
  48. package/dist/lib.js.map +1 -1
  49. package/dist/memory/store.d.ts +22 -0
  50. package/dist/memory/store.d.ts.map +1 -0
  51. package/dist/memory/store.js +97 -0
  52. package/dist/memory/store.js.map +1 -0
  53. package/dist/storage/lancedb.d.ts.map +1 -1
  54. package/dist/storage/lancedb.js +27 -31
  55. package/dist/storage/lancedb.js.map +1 -1
  56. package/dist/storage/types.d.ts.map +1 -1
  57. package/dist/storage/types.js +2 -1
  58. package/dist/storage/types.js.map +1 -1
  59. package/dist/types/index.d.ts +27 -0
  60. package/dist/types/index.d.ts.map +1 -1
  61. package/dist/types/index.js +1 -0
  62. package/dist/types/index.js.map +1 -1
  63. package/dist/utils/chunking.d.ts.map +1 -1
  64. package/dist/utils/chunking.js +10 -9
  65. package/dist/utils/chunking.js.map +1 -1
  66. package/dist/utils/dependency-detection.d.ts +18 -0
  67. package/dist/utils/dependency-detection.d.ts.map +1 -0
  68. package/dist/utils/dependency-detection.js +102 -0
  69. package/dist/utils/dependency-detection.js.map +1 -0
  70. package/dist/utils/git-dates.d.ts.map +1 -1
  71. package/dist/utils/git-dates.js +3 -3
  72. package/dist/utils/git-dates.js.map +1 -1
  73. package/dist/utils/language-detection.d.ts.map +1 -1
  74. package/dist/utils/language-detection.js +69 -17
  75. package/dist/utils/language-detection.js.map +1 -1
  76. package/dist/utils/usage-tracker.d.ts +2 -2
  77. package/dist/utils/usage-tracker.d.ts.map +1 -1
  78. package/dist/utils/usage-tracker.js +64 -32
  79. package/dist/utils/usage-tracker.js.map +1 -1
  80. package/dist/utils/workspace-detection.d.ts +32 -0
  81. package/dist/utils/workspace-detection.d.ts.map +1 -0
  82. package/dist/utils/workspace-detection.js +107 -0
  83. package/dist/utils/workspace-detection.js.map +1 -0
  84. package/package.json +114 -97
  85. package/dist/core/file-watcher.d.ts +0 -63
  86. package/dist/core/file-watcher.d.ts.map +0 -1
  87. package/dist/core/file-watcher.js +0 -210
  88. package/dist/core/file-watcher.js.map +0 -1
  89. package/dist/utils/logger.d.ts +0 -36
  90. package/dist/utils/logger.d.ts.map +0 -1
  91. package/dist/utils/logger.js +0 -111
  92. package/dist/utils/logger.js.map +0 -1
  93. package/dist/utils/pattern-detector.d.ts +0 -41
  94. package/dist/utils/pattern-detector.d.ts.map +0 -1
  95. package/dist/utils/pattern-detector.js +0 -101
  96. package/dist/utils/pattern-detector.js.map +0 -1
@@ -1,41 +0,0 @@
1
- /**
2
- * Pattern detection and team alignment utilities for Phase 1.5
3
- */
4
- export interface TeamPatterns {
5
- dependencyInjection?: PatternConsensus;
6
- stateManagement?: PatternConsensus;
7
- componentInputs?: PatternConsensus;
8
- [key: string]: PatternConsensus | undefined;
9
- }
10
- export interface PatternConsensus {
11
- primary: {
12
- name: string;
13
- count: number;
14
- frequency: string;
15
- };
16
- alternatives?: Array<{
17
- name: string;
18
- count: number;
19
- frequency: string;
20
- }>;
21
- }
22
- export interface CodebaseIntelligence {
23
- libraryUsage: Record<string, any>;
24
- patterns: TeamPatterns;
25
- generatedAt: string;
26
- }
27
- export declare class PatternDetector {
28
- private intelligence;
29
- private rootPath;
30
- constructor(rootPath: string);
31
- loadIntelligence(): Promise<void>;
32
- /**
33
- * Detect patterns in code chunk content
34
- */
35
- detectPatterns(content: string, componentType?: string): string[];
36
- /**
37
- * Calculate team alignment percentage based on detected patterns
38
- */
39
- calculateTeamAlignment(detectedPatterns: string[]): string;
40
- }
41
- //# sourceMappingURL=pattern-detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pattern-detector.d.ts","sourceRoot":"","sources":["../../src/utils/pattern-detector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,YAAY;IACzB,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACN;AAED,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAItB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAoCjE;;OAEG;IACH,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;CA2C7D"}
@@ -1,101 +0,0 @@
1
- /**
2
- * Pattern detection and team alignment utilities for Phase 1.5
3
- */
4
- import path from 'path';
5
- import { promises as fs } from 'fs';
6
- export class PatternDetector {
7
- intelligence = null;
8
- rootPath;
9
- constructor(rootPath) {
10
- this.rootPath = rootPath;
11
- }
12
- async loadIntelligence() {
13
- try {
14
- const intelligencePath = path.join(this.rootPath, '.codebase-intelligence.json');
15
- const content = await fs.readFile(intelligencePath, 'utf-8');
16
- this.intelligence = JSON.parse(content);
17
- }
18
- catch (error) {
19
- console.warn('No codebase intelligence file found');
20
- this.intelligence = null;
21
- }
22
- }
23
- /**
24
- * Detect patterns in code chunk content
25
- */
26
- detectPatterns(content, componentType) {
27
- const patterns = [];
28
- // DI patterns
29
- if (content.includes('inject(')) {
30
- patterns.push('inject() DI');
31
- }
32
- else if (content.match(/constructor\s*\(/)) {
33
- patterns.push('constructor injection');
34
- }
35
- // State management
36
- if (content.includes('signal(') || content.includes('signal<')) {
37
- patterns.push('Signals');
38
- }
39
- if (content.includes('BehaviorSubject') || content.includes('Subject<')) {
40
- patterns.push('RxJS');
41
- }
42
- // Lifecycle
43
- if (content.includes('OnDestroy') && content.includes('destroyed$')) {
44
- patterns.push('OnDestroy cleanup');
45
- }
46
- // Component patterns
47
- if (componentType === 'component') {
48
- if (content.includes('standalone: true')) {
49
- patterns.push('standalone component');
50
- }
51
- if (content.includes('OnPush')) {
52
- patterns.push('OnPush strategy');
53
- }
54
- }
55
- return patterns;
56
- }
57
- /**
58
- * Calculate team alignment percentage based on detected patterns
59
- */
60
- calculateTeamAlignment(detectedPatterns) {
61
- if (!this.intelligence || !this.intelligence.patterns) {
62
- return 'unknown';
63
- }
64
- let matchScore = 0;
65
- let totalChecks = 0;
66
- // Check DI alignment
67
- if (detectedPatterns.includes('inject() DI')) {
68
- const diPattern = this.intelligence.patterns.dependencyInjection;
69
- if (diPattern?.primary.name === 'inject() function') {
70
- matchScore += parseInt(diPattern.primary.frequency) || 0;
71
- }
72
- totalChecks++;
73
- }
74
- else if (detectedPatterns.includes('constructor injection')) {
75
- totalChecks++;
76
- // Low score for non-consensus pattern
77
- matchScore += 5;
78
- }
79
- // Check state management alignment
80
- if (detectedPatterns.includes('Signals')) {
81
- const statePattern = this.intelligence.patterns.stateManagement;
82
- if (statePattern?.primary.name === 'Angular Signals') {
83
- matchScore += parseInt(statePattern.primary.frequency) || 0;
84
- }
85
- totalChecks++;
86
- }
87
- else if (detectedPatterns.includes('RxJS')) {
88
- const statePattern = this.intelligence.patterns.stateManagement;
89
- if (statePattern?.alternatives?.[0]?.name === 'RxJS Subjects') {
90
- matchScore += parseInt(statePattern.alternatives[0].frequency) || 0;
91
- }
92
- totalChecks++;
93
- }
94
- if (totalChecks === 0) {
95
- return 'no patterns detected';
96
- }
97
- const avgAlignment = Math.round(matchScore / totalChecks);
98
- return `${avgAlignment}% match`;
99
- }
100
- }
101
- //# sourceMappingURL=pattern-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pattern-detector.js","sourceRoot":"","sources":["../../src/utils/pattern-detector.ts"],"names":[],"mappings":"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"}