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.
- package/LICENSE +21 -21
- package/README.md +144 -87
- package/dist/analyzers/angular/index.d.ts +1 -1
- package/dist/analyzers/angular/index.d.ts.map +1 -1
- package/dist/analyzers/angular/index.js +298 -309
- package/dist/analyzers/angular/index.js.map +1 -1
- package/dist/analyzers/generic/index.d.ts +1 -1
- package/dist/analyzers/generic/index.d.ts.map +1 -1
- package/dist/analyzers/generic/index.js +93 -47
- package/dist/analyzers/generic/index.js.map +1 -1
- package/dist/constants/codebase-context.d.ts +6 -0
- package/dist/constants/codebase-context.d.ts.map +1 -0
- package/dist/constants/codebase-context.js +8 -0
- package/dist/constants/codebase-context.js.map +1 -0
- package/dist/core/analyzer-registry.d.ts.map +1 -1
- package/dist/core/analyzer-registry.js +5 -7
- package/dist/core/analyzer-registry.js.map +1 -1
- package/dist/core/indexer.d.ts +9 -1
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +206 -139
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/search.d.ts +1 -1
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +63 -59
- package/dist/core/search.js.map +1 -1
- package/dist/embeddings/openai.d.ts.map +1 -1
- package/dist/embeddings/openai.js +2 -2
- package/dist/embeddings/openai.js.map +1 -1
- package/dist/embeddings/transformers.d.ts +1 -1
- package/dist/embeddings/transformers.d.ts.map +1 -1
- package/dist/embeddings/transformers.js +19 -15
- package/dist/embeddings/transformers.js.map +1 -1
- package/dist/embeddings/types.d.ts +1 -1
- package/dist/embeddings/types.d.ts.map +1 -1
- package/dist/embeddings/types.js +3 -3
- package/dist/embeddings/types.js.map +1 -1
- package/dist/errors/index.d.ts +8 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +11 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +6 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +691 -336
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +18 -18
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +23 -23
- package/dist/lib.js.map +1 -1
- package/dist/memory/store.d.ts +22 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +97 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/storage/lancedb.d.ts.map +1 -1
- package/dist/storage/lancedb.js +27 -31
- package/dist/storage/lancedb.js.map +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js +2 -1
- package/dist/storage/types.js.map +1 -1
- package/dist/types/index.d.ts +27 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/chunking.d.ts.map +1 -1
- package/dist/utils/chunking.js +10 -9
- package/dist/utils/chunking.js.map +1 -1
- package/dist/utils/dependency-detection.d.ts +18 -0
- package/dist/utils/dependency-detection.d.ts.map +1 -0
- package/dist/utils/dependency-detection.js +102 -0
- package/dist/utils/dependency-detection.js.map +1 -0
- package/dist/utils/git-dates.d.ts.map +1 -1
- package/dist/utils/git-dates.js +3 -3
- package/dist/utils/git-dates.js.map +1 -1
- package/dist/utils/language-detection.d.ts.map +1 -1
- package/dist/utils/language-detection.js +69 -17
- package/dist/utils/language-detection.js.map +1 -1
- package/dist/utils/usage-tracker.d.ts +2 -2
- package/dist/utils/usage-tracker.d.ts.map +1 -1
- package/dist/utils/usage-tracker.js +64 -32
- package/dist/utils/usage-tracker.js.map +1 -1
- package/dist/utils/workspace-detection.d.ts +32 -0
- package/dist/utils/workspace-detection.d.ts.map +1 -0
- package/dist/utils/workspace-detection.js +107 -0
- package/dist/utils/workspace-detection.js.map +1 -0
- package/package.json +114 -97
- package/dist/core/file-watcher.d.ts +0 -63
- package/dist/core/file-watcher.d.ts.map +0 -1
- package/dist/core/file-watcher.js +0 -210
- package/dist/core/file-watcher.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -36
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -111
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/pattern-detector.d.ts +0 -41
- package/dist/utils/pattern-detector.d.ts.map +0 -1
- package/dist/utils/pattern-detector.js +0 -101
- 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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"}
|