mycontext-cli 0.4.8 → 0.4.9
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/README.md +101 -35
- package/dist/agents/communication/AgentCommunicationManager.d.ts +27 -0
- package/dist/agents/communication/AgentCommunicationManager.d.ts.map +1 -0
- package/dist/agents/communication/AgentCommunicationManager.js +293 -0
- package/dist/agents/communication/AgentCommunicationManager.js.map +1 -0
- package/dist/agents/evolution/CodeEvolutionEngine.d.ts +92 -0
- package/dist/agents/evolution/CodeEvolutionEngine.d.ts.map +1 -0
- package/dist/agents/evolution/CodeEvolutionEngine.js +639 -0
- package/dist/agents/evolution/CodeEvolutionEngine.js.map +1 -0
- package/dist/agents/implementations/ArchitectAgent.d.ts +39 -0
- package/dist/agents/implementations/ArchitectAgent.d.ts.map +1 -0
- package/dist/agents/implementations/ArchitectAgent.js +345 -0
- package/dist/agents/implementations/ArchitectAgent.js.map +1 -0
- package/dist/agents/implementations/CodeGenSubAgent.d.ts +12 -0
- package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.js +296 -43
- package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
- package/dist/agents/implementations/PromptConstructorAgent.d.ts +50 -0
- package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -0
- package/dist/agents/implementations/PromptConstructorAgent.js +481 -0
- package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -0
- package/dist/agents/implementations/SecurityAgent.d.ts +31 -0
- package/dist/agents/implementations/SecurityAgent.d.ts.map +1 -0
- package/dist/agents/implementations/SecurityAgent.js +453 -0
- package/dist/agents/implementations/SecurityAgent.js.map +1 -0
- package/dist/agents/intelligence/ProjectIntelligence.d.ts +127 -0
- package/dist/agents/intelligence/ProjectIntelligence.d.ts.map +1 -0
- package/dist/agents/intelligence/ProjectIntelligence.js +456 -0
- package/dist/agents/intelligence/ProjectIntelligence.js.map +1 -0
- package/dist/agents/interfaces/AgentCommunication.d.ts +65 -0
- package/dist/agents/interfaces/AgentCommunication.d.ts.map +1 -0
- package/dist/agents/interfaces/AgentCommunication.js +13 -0
- package/dist/agents/interfaces/AgentCommunication.js.map +1 -0
- package/dist/agents/learning/CrossProjectLearning.d.ts +99 -0
- package/dist/agents/learning/CrossProjectLearning.d.ts.map +1 -0
- package/dist/agents/learning/CrossProjectLearning.js +517 -0
- package/dist/agents/learning/CrossProjectLearning.js.map +1 -0
- package/dist/cli.js +47 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/agent-flow.d.ts +21 -0
- package/dist/commands/agent-flow.d.ts.map +1 -0
- package/dist/commands/agent-flow.js +225 -0
- package/dist/commands/agent-flow.js.map +1 -0
- package/dist/commands/generate-components.d.ts +0 -13
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +23 -385
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate.d.ts +4 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +173 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/predict.d.ts +36 -0
- package/dist/commands/predict.d.ts.map +1 -0
- package/dist/commands/predict.js +539 -0
- package/dist/commands/predict.js.map +1 -0
- package/dist/utils/clean.d.ts +6 -0
- package/dist/utils/clean.d.ts.map +1 -0
- package/dist/utils/clean.js +220 -0
- package/dist/utils/clean.js.map +1 -0
- package/dist/utils/githubModelsClient.d.ts.map +1 -1
- package/dist/utils/githubModelsClient.js +11 -12
- package/dist/utils/githubModelsClient.js.map +1 -1
- package/dist/utils/hybridAIClient.d.ts +1 -0
- package/dist/utils/hybridAIClient.d.ts.map +1 -1
- package/dist/utils/hybridAIClient.js +23 -9
- package/dist/utils/hybridAIClient.js.map +1 -1
- package/dist/utils/ollamaClient.d.ts.map +1 -1
- package/dist/utils/ollamaClient.js +6 -4
- package/dist/utils/ollamaClient.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { ProjectIntelligence } from "../intelligence/ProjectIntelligence";
|
|
2
|
+
export interface CrossProjectLearning {
|
|
3
|
+
patterns: LearnedPattern[];
|
|
4
|
+
bestPractices: BestPractice[];
|
|
5
|
+
commonIssues: CommonIssue[];
|
|
6
|
+
recommendations: Recommendation[];
|
|
7
|
+
}
|
|
8
|
+
export interface LearnedPattern {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
frequency: number;
|
|
13
|
+
confidence: number;
|
|
14
|
+
projects: string[];
|
|
15
|
+
context: string[];
|
|
16
|
+
benefits: string[];
|
|
17
|
+
implementation: PatternImplementation;
|
|
18
|
+
related: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface PatternImplementation {
|
|
21
|
+
code: string;
|
|
22
|
+
dependencies: string[];
|
|
23
|
+
setup: string[];
|
|
24
|
+
examples: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface BestPractice {
|
|
27
|
+
id: string;
|
|
28
|
+
category: "performance" | "security" | "accessibility" | "maintainability" | "testing";
|
|
29
|
+
title: string;
|
|
30
|
+
description: string;
|
|
31
|
+
evidence: Evidence[];
|
|
32
|
+
adoptionRate: number;
|
|
33
|
+
impact: "low" | "medium" | "high";
|
|
34
|
+
difficulty: "easy" | "medium" | "hard";
|
|
35
|
+
}
|
|
36
|
+
export interface Evidence {
|
|
37
|
+
projectId: string;
|
|
38
|
+
metrics: Record<string, number>;
|
|
39
|
+
outcome: string;
|
|
40
|
+
timestamp: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CommonIssue {
|
|
43
|
+
id: string;
|
|
44
|
+
type: "bug" | "performance" | "security" | "accessibility";
|
|
45
|
+
pattern: string;
|
|
46
|
+
frequency: number;
|
|
47
|
+
severity: "low" | "medium" | "high" | "critical";
|
|
48
|
+
solutions: Solution[];
|
|
49
|
+
prevention: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface Solution {
|
|
52
|
+
approach: string;
|
|
53
|
+
successRate: number;
|
|
54
|
+
timeToResolve: string;
|
|
55
|
+
code: string;
|
|
56
|
+
notes: string;
|
|
57
|
+
}
|
|
58
|
+
export interface Recommendation {
|
|
59
|
+
id: string;
|
|
60
|
+
type: "pattern" | "tool" | "practice" | "architecture";
|
|
61
|
+
title: string;
|
|
62
|
+
description: string;
|
|
63
|
+
reasoning: string;
|
|
64
|
+
confidence: number;
|
|
65
|
+
urgency: "low" | "medium" | "high";
|
|
66
|
+
context: string[];
|
|
67
|
+
}
|
|
68
|
+
export declare class CrossProjectLearningEngine implements CrossProjectLearning {
|
|
69
|
+
patterns: LearnedPattern[];
|
|
70
|
+
bestPractices: BestPractice[];
|
|
71
|
+
commonIssues: CommonIssue[];
|
|
72
|
+
recommendations: Recommendation[];
|
|
73
|
+
private learningDatabase;
|
|
74
|
+
private projectId;
|
|
75
|
+
constructor(projectPath?: string);
|
|
76
|
+
learnFromCommunity(): Promise<CrossProjectLearning>;
|
|
77
|
+
contributeToNetwork(projectIntelligence: ProjectIntelligence): Promise<void>;
|
|
78
|
+
private loadLearningDatabase;
|
|
79
|
+
private initializeLearningDatabase;
|
|
80
|
+
private analyzePatterns;
|
|
81
|
+
private generateBestPractices;
|
|
82
|
+
private identifyCommonIssues;
|
|
83
|
+
private generateRecommendations;
|
|
84
|
+
private getCurrentProjectPatterns;
|
|
85
|
+
private generateToolRecommendations;
|
|
86
|
+
private extractPatternsFromProject;
|
|
87
|
+
private updatePatternStatistics;
|
|
88
|
+
private recordProjectOutcomes;
|
|
89
|
+
private calculateAverageComplexity;
|
|
90
|
+
private projectImplementsPractice;
|
|
91
|
+
private generateProjectId;
|
|
92
|
+
private saveLearningDatabase;
|
|
93
|
+
getRecommendationsForProject(): Promise<Recommendation[]>;
|
|
94
|
+
getPatternSuggestions(category?: string): Promise<LearnedPattern[]>;
|
|
95
|
+
getBestPracticesFor(category: BestPractice["category"]): Promise<BestPractice[]>;
|
|
96
|
+
getCommonIssuesPreventionList(): Promise<string[]>;
|
|
97
|
+
generateLearningReport(): Promise<string>;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=CrossProjectLearning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrossProjectLearning.d.ts","sourceRoot":"","sources":["../../../src/agents/learning/CrossProjectLearning.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CrossProjectLearningEngine = void 0;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
class CrossProjectLearningEngine {
|
|
10
|
+
constructor(projectPath = process.cwd()) {
|
|
11
|
+
this.patterns = [];
|
|
12
|
+
this.bestPractices = [];
|
|
13
|
+
this.commonIssues = [];
|
|
14
|
+
this.recommendations = [];
|
|
15
|
+
this.learningDatabase = path_1.default.join(process.cwd(), ".mycontext", "learning-network.json");
|
|
16
|
+
this.projectId = this.generateProjectId(projectPath);
|
|
17
|
+
}
|
|
18
|
+
async learnFromCommunity() {
|
|
19
|
+
console.log("🌐 Learning from community patterns...");
|
|
20
|
+
// Load existing learning data
|
|
21
|
+
await this.loadLearningDatabase();
|
|
22
|
+
// Analyze and update patterns
|
|
23
|
+
await this.analyzePatterns();
|
|
24
|
+
// Generate best practices
|
|
25
|
+
await this.generateBestPractices();
|
|
26
|
+
// Identify common issues
|
|
27
|
+
await this.identifyCommonIssues();
|
|
28
|
+
// Generate recommendations
|
|
29
|
+
await this.generateRecommendations();
|
|
30
|
+
// Save updated learning
|
|
31
|
+
await this.saveLearningDatabase();
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
async contributeToNetwork(projectIntelligence) {
|
|
35
|
+
console.log("📤 Contributing to learning network...");
|
|
36
|
+
// Extract learnable patterns from current project
|
|
37
|
+
const newPatterns = await this.extractPatternsFromProject(projectIntelligence);
|
|
38
|
+
// Update pattern frequency and confidence
|
|
39
|
+
await this.updatePatternStatistics(newPatterns);
|
|
40
|
+
// Record project outcomes
|
|
41
|
+
await this.recordProjectOutcomes(projectIntelligence);
|
|
42
|
+
console.log(`✅ Contributed ${newPatterns.length} patterns to the network`);
|
|
43
|
+
}
|
|
44
|
+
async loadLearningDatabase() {
|
|
45
|
+
if (await fs_extra_1.default.pathExists(this.learningDatabase)) {
|
|
46
|
+
try {
|
|
47
|
+
const data = await fs_extra_1.default.readJson(this.learningDatabase);
|
|
48
|
+
this.patterns = data.patterns || [];
|
|
49
|
+
this.bestPractices = data.bestPractices || [];
|
|
50
|
+
this.commonIssues = data.commonIssues || [];
|
|
51
|
+
this.recommendations = data.recommendations || [];
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.warn("Failed to load learning database:", error);
|
|
55
|
+
await this.initializeLearningDatabase();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
await this.initializeLearningDatabase();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async initializeLearningDatabase() {
|
|
63
|
+
// Initialize with common React/Next.js patterns
|
|
64
|
+
this.patterns = [
|
|
65
|
+
{
|
|
66
|
+
id: "react-compound-components",
|
|
67
|
+
name: "Compound Components",
|
|
68
|
+
description: "Components that work together to form a cohesive UI element",
|
|
69
|
+
frequency: 85,
|
|
70
|
+
confidence: 0.9,
|
|
71
|
+
projects: ["ecommerce", "dashboard", "cms"],
|
|
72
|
+
context: ["complex-ui", "reusable-components"],
|
|
73
|
+
benefits: ["Flexibility", "Composition", "API simplicity"],
|
|
74
|
+
implementation: {
|
|
75
|
+
code: `const Card = ({ children }) => <div className="card">{children}</div>;
|
|
76
|
+
Card.Header = ({ children }) => <div className="card-header">{children}</div>;
|
|
77
|
+
Card.Body = ({ children }) => <div className="card-body">{children}</div>;
|
|
78
|
+
Card.Footer = ({ children }) => <div className="card-footer">{children}</div>;`,
|
|
79
|
+
dependencies: [],
|
|
80
|
+
setup: [
|
|
81
|
+
"Define main component",
|
|
82
|
+
"Attach sub-components as properties",
|
|
83
|
+
],
|
|
84
|
+
examples: [
|
|
85
|
+
"<Card><Card.Header>Title</Card.Header><Card.Body>Content</Card.Body></Card>",
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
related: ["render-props", "context-api"],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: "react-custom-hooks",
|
|
92
|
+
name: "Custom Hooks",
|
|
93
|
+
description: "Reusable stateful logic extracted into custom hooks",
|
|
94
|
+
frequency: 95,
|
|
95
|
+
confidence: 0.95,
|
|
96
|
+
projects: ["all"],
|
|
97
|
+
context: ["state-management", "logic-reuse"],
|
|
98
|
+
benefits: ["Reusability", "Testability", "Separation of concerns"],
|
|
99
|
+
implementation: {
|
|
100
|
+
code: `const useLocalStorage = (key, defaultValue) => {
|
|
101
|
+
const [value, setValue] = useState(() => {
|
|
102
|
+
const stored = localStorage.getItem(key);
|
|
103
|
+
return stored ? JSON.parse(stored) : defaultValue;
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
localStorage.setItem(key, JSON.stringify(value));
|
|
108
|
+
}, [key, value]);
|
|
109
|
+
|
|
110
|
+
return [value, setValue];
|
|
111
|
+
};`,
|
|
112
|
+
dependencies: ["useState", "useEffect"],
|
|
113
|
+
setup: ["Extract logic", "Return state and handlers"],
|
|
114
|
+
examples: [
|
|
115
|
+
'const [theme, setTheme] = useLocalStorage("theme", "light");',
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
related: ["react-hooks", "state-management"],
|
|
119
|
+
},
|
|
120
|
+
];
|
|
121
|
+
this.bestPractices = [
|
|
122
|
+
{
|
|
123
|
+
id: "typescript-strict-mode",
|
|
124
|
+
category: "maintainability",
|
|
125
|
+
title: "Enable TypeScript Strict Mode",
|
|
126
|
+
description: "Use strict TypeScript configuration for better type safety",
|
|
127
|
+
evidence: [
|
|
128
|
+
{
|
|
129
|
+
projectId: "sample-1",
|
|
130
|
+
metrics: { bugsReduced: 40, developmentTime: -10 },
|
|
131
|
+
outcome: "Significant reduction in runtime errors",
|
|
132
|
+
timestamp: new Date().toISOString(),
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
adoptionRate: 78,
|
|
136
|
+
impact: "high",
|
|
137
|
+
difficulty: "easy",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: "component-testing",
|
|
141
|
+
category: "testing",
|
|
142
|
+
title: "Test Components in Isolation",
|
|
143
|
+
description: "Write focused unit tests for each component",
|
|
144
|
+
evidence: [
|
|
145
|
+
{
|
|
146
|
+
projectId: "sample-2",
|
|
147
|
+
metrics: { testCoverage: 85, bugDetection: 60 },
|
|
148
|
+
outcome: "Faster debugging and more confident deployments",
|
|
149
|
+
timestamp: new Date().toISOString(),
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
adoptionRate: 65,
|
|
153
|
+
impact: "high",
|
|
154
|
+
difficulty: "medium",
|
|
155
|
+
},
|
|
156
|
+
];
|
|
157
|
+
this.commonIssues = [
|
|
158
|
+
{
|
|
159
|
+
id: "infinite-rerender-loop",
|
|
160
|
+
type: "bug",
|
|
161
|
+
pattern: "useEffect without proper dependencies",
|
|
162
|
+
frequency: 45,
|
|
163
|
+
severity: "medium",
|
|
164
|
+
solutions: [
|
|
165
|
+
{
|
|
166
|
+
approach: "Add missing dependencies to dependency array",
|
|
167
|
+
successRate: 85,
|
|
168
|
+
timeToResolve: "15 minutes",
|
|
169
|
+
code: "useEffect(() => { /* effect */ }, [dependency1, dependency2]);",
|
|
170
|
+
notes: "Most common cause is missing dependencies",
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
approach: "Use useCallback for function dependencies",
|
|
174
|
+
successRate: 90,
|
|
175
|
+
timeToResolve: "30 minutes",
|
|
176
|
+
code: "const memoizedCallback = useCallback(() => { /* logic */ }, [dep]);",
|
|
177
|
+
notes: "When effect depends on functions",
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
prevention: [
|
|
181
|
+
"Use ESLint exhaustive-deps rule",
|
|
182
|
+
"Consider useCallback for function dependencies",
|
|
183
|
+
"Review effect dependencies regularly",
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
];
|
|
187
|
+
}
|
|
188
|
+
async analyzePatterns() {
|
|
189
|
+
// Simulate pattern analysis from community data
|
|
190
|
+
// In real implementation, this would analyze actual project data
|
|
191
|
+
// Update pattern frequencies based on recent usage
|
|
192
|
+
for (const pattern of this.patterns) {
|
|
193
|
+
// Simulate natural evolution of pattern adoption
|
|
194
|
+
const randomVariation = (Math.random() - 0.5) * 10;
|
|
195
|
+
pattern.frequency = Math.max(0, Math.min(100, pattern.frequency + randomVariation));
|
|
196
|
+
// Update confidence based on success rate
|
|
197
|
+
if (pattern.frequency > 70) {
|
|
198
|
+
pattern.confidence = Math.min(1, pattern.confidence + 0.05);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
async generateBestPractices() {
|
|
203
|
+
// Generate new best practices based on pattern success
|
|
204
|
+
const highSuccessPatterns = this.patterns.filter((p) => p.confidence > 0.8 && p.frequency > 60);
|
|
205
|
+
for (const pattern of highSuccessPatterns) {
|
|
206
|
+
const existingPractice = this.bestPractices.find((bp) => bp.title.includes(pattern.name));
|
|
207
|
+
if (!existingPractice) {
|
|
208
|
+
this.bestPractices.push({
|
|
209
|
+
id: `practice-${pattern.id}`,
|
|
210
|
+
category: "maintainability",
|
|
211
|
+
title: `Adopt ${pattern.name} Pattern`,
|
|
212
|
+
description: `${pattern.description}. High success rate across projects.`,
|
|
213
|
+
evidence: [
|
|
214
|
+
{
|
|
215
|
+
projectId: "aggregated",
|
|
216
|
+
metrics: {
|
|
217
|
+
adoptionRate: pattern.frequency,
|
|
218
|
+
successRate: pattern.confidence * 100,
|
|
219
|
+
},
|
|
220
|
+
outcome: pattern.benefits.join(", "),
|
|
221
|
+
timestamp: new Date().toISOString(),
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
adoptionRate: pattern.frequency,
|
|
225
|
+
impact: pattern.frequency > 80 ? "high" : "medium",
|
|
226
|
+
difficulty: pattern.implementation.dependencies.length > 2 ? "medium" : "easy",
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
async identifyCommonIssues() {
|
|
232
|
+
// Analyze patterns for potential issues
|
|
233
|
+
const lowConfidencePatterns = this.patterns.filter((p) => p.confidence < 0.6);
|
|
234
|
+
for (const pattern of lowConfidencePatterns) {
|
|
235
|
+
const existingIssue = this.commonIssues.find((ci) => ci.pattern.includes(pattern.name));
|
|
236
|
+
if (!existingIssue) {
|
|
237
|
+
this.commonIssues.push({
|
|
238
|
+
id: `issue-${pattern.id}`,
|
|
239
|
+
type: "bug",
|
|
240
|
+
pattern: `Improper implementation of ${pattern.name}`,
|
|
241
|
+
frequency: Math.round((1 - pattern.confidence) * 100),
|
|
242
|
+
severity: pattern.confidence < 0.4 ? "high" : "medium",
|
|
243
|
+
solutions: [
|
|
244
|
+
{
|
|
245
|
+
approach: `Follow established ${pattern.name} pattern`,
|
|
246
|
+
successRate: 80,
|
|
247
|
+
timeToResolve: "1-2 hours",
|
|
248
|
+
code: pattern.implementation.code,
|
|
249
|
+
notes: `Review ${pattern.name} implementation guidelines`,
|
|
250
|
+
},
|
|
251
|
+
],
|
|
252
|
+
prevention: [
|
|
253
|
+
`Use proven ${pattern.name} examples`,
|
|
254
|
+
"Test implementation thoroughly",
|
|
255
|
+
"Code review with experienced developers",
|
|
256
|
+
],
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
async generateRecommendations() {
|
|
262
|
+
this.recommendations = [];
|
|
263
|
+
// Recommend high-value patterns not yet adopted
|
|
264
|
+
const currentProjectPatterns = await this.getCurrentProjectPatterns();
|
|
265
|
+
const missingPatterns = this.patterns.filter((p) => p.confidence > 0.8 &&
|
|
266
|
+
p.frequency > 70 &&
|
|
267
|
+
!currentProjectPatterns.includes(p.name));
|
|
268
|
+
for (const pattern of missingPatterns) {
|
|
269
|
+
this.recommendations.push({
|
|
270
|
+
id: `rec-pattern-${pattern.id}`,
|
|
271
|
+
type: "pattern",
|
|
272
|
+
title: `Adopt ${pattern.name}`,
|
|
273
|
+
description: pattern.description,
|
|
274
|
+
reasoning: `High success rate (${Math.round(pattern.confidence * 100)}%) and adoption (${pattern.frequency}%) across similar projects`,
|
|
275
|
+
confidence: pattern.confidence,
|
|
276
|
+
urgency: pattern.frequency > 85 ? "high" : "medium",
|
|
277
|
+
context: pattern.context,
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
// Recommend best practices
|
|
281
|
+
const unimplementedPractices = this.bestPractices.filter((bp) => bp.impact === "high" && bp.difficulty === "easy");
|
|
282
|
+
for (const practice of unimplementedPractices) {
|
|
283
|
+
this.recommendations.push({
|
|
284
|
+
id: `rec-practice-${practice.id}`,
|
|
285
|
+
type: "practice",
|
|
286
|
+
title: practice.title,
|
|
287
|
+
description: practice.description,
|
|
288
|
+
reasoning: `High impact with easy implementation. ${practice.adoptionRate}% adoption rate.`,
|
|
289
|
+
confidence: practice.adoptionRate / 100,
|
|
290
|
+
urgency: practice.impact === "high" ? "high" : "medium",
|
|
291
|
+
context: [practice.category],
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
// Recommend tools based on common patterns
|
|
295
|
+
const toolRecommendations = this.generateToolRecommendations(currentProjectPatterns);
|
|
296
|
+
this.recommendations.push(...toolRecommendations);
|
|
297
|
+
}
|
|
298
|
+
async getCurrentProjectPatterns() {
|
|
299
|
+
// Analyze current project to identify existing patterns
|
|
300
|
+
const patterns = [];
|
|
301
|
+
try {
|
|
302
|
+
const packagePath = path_1.default.join(process.cwd(), "package.json");
|
|
303
|
+
if (await fs_extra_1.default.pathExists(packagePath)) {
|
|
304
|
+
const pkg = await fs_extra_1.default.readJson(packagePath);
|
|
305
|
+
// Infer patterns from dependencies
|
|
306
|
+
if (pkg.dependencies?.["react-hook-form"])
|
|
307
|
+
patterns.push("Form Management");
|
|
308
|
+
if (pkg.dependencies?.["react-query"])
|
|
309
|
+
patterns.push("Server State");
|
|
310
|
+
if (pkg.dependencies?.["framer-motion"])
|
|
311
|
+
patterns.push("Animations");
|
|
312
|
+
if (pkg.devDependencies?.["@testing-library/react"])
|
|
313
|
+
patterns.push("Component Testing");
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
console.warn("Could not analyze current project patterns:", error);
|
|
318
|
+
}
|
|
319
|
+
return patterns;
|
|
320
|
+
}
|
|
321
|
+
generateToolRecommendations(currentPatterns) {
|
|
322
|
+
const toolRecs = [];
|
|
323
|
+
// Tool recommendations based on missing patterns
|
|
324
|
+
if (!currentPatterns.includes("Component Testing")) {
|
|
325
|
+
toolRecs.push({
|
|
326
|
+
id: "rec-tool-testing",
|
|
327
|
+
type: "tool",
|
|
328
|
+
title: "Add React Testing Library",
|
|
329
|
+
description: "Comprehensive testing solution for React components",
|
|
330
|
+
reasoning: "Essential for maintainable React applications. Used by 89% of successful projects.",
|
|
331
|
+
confidence: 0.89,
|
|
332
|
+
urgency: "high",
|
|
333
|
+
context: ["testing", "quality-assurance"],
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
if (!currentPatterns.includes("State Management")) {
|
|
337
|
+
toolRecs.push({
|
|
338
|
+
id: "rec-tool-state",
|
|
339
|
+
type: "tool",
|
|
340
|
+
title: "Consider Zustand for State Management",
|
|
341
|
+
description: "Lightweight state management with TypeScript support",
|
|
342
|
+
reasoning: "Simpler than Redux, growing adoption rate of 67% in new projects.",
|
|
343
|
+
confidence: 0.67,
|
|
344
|
+
urgency: "medium",
|
|
345
|
+
context: ["state-management", "scalability"],
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
return toolRecs;
|
|
349
|
+
}
|
|
350
|
+
async extractPatternsFromProject(intelligence) {
|
|
351
|
+
const extractedPatterns = [];
|
|
352
|
+
// Extract patterns from architectural analysis
|
|
353
|
+
for (const pattern of intelligence.architecturalPatterns) {
|
|
354
|
+
const existing = this.patterns.find((p) => p.name === pattern.name);
|
|
355
|
+
if (existing) {
|
|
356
|
+
// Update existing pattern
|
|
357
|
+
existing.frequency += 1;
|
|
358
|
+
existing.projects.push(this.projectId);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
// Create new pattern
|
|
362
|
+
extractedPatterns.push({
|
|
363
|
+
id: `pattern-${Date.now()}-${pattern.name}`,
|
|
364
|
+
name: pattern.name,
|
|
365
|
+
description: pattern.context,
|
|
366
|
+
frequency: 1,
|
|
367
|
+
confidence: pattern.confidence,
|
|
368
|
+
projects: [this.projectId],
|
|
369
|
+
context: [pattern.context],
|
|
370
|
+
benefits: ["Identified in successful project"],
|
|
371
|
+
implementation: {
|
|
372
|
+
code: "",
|
|
373
|
+
dependencies: [],
|
|
374
|
+
setup: [],
|
|
375
|
+
examples: pattern.examples,
|
|
376
|
+
},
|
|
377
|
+
related: [],
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return extractedPatterns;
|
|
382
|
+
}
|
|
383
|
+
async updatePatternStatistics(newPatterns) {
|
|
384
|
+
// Add new patterns to the collection
|
|
385
|
+
for (const pattern of newPatterns) {
|
|
386
|
+
const existing = this.patterns.find((p) => p.name === pattern.name);
|
|
387
|
+
if (!existing) {
|
|
388
|
+
this.patterns.push(pattern);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
// Update overall statistics
|
|
392
|
+
const totalProjects = new Set(this.patterns.flatMap((p) => p.projects))
|
|
393
|
+
.size;
|
|
394
|
+
for (const pattern of this.patterns) {
|
|
395
|
+
// Recalculate frequency as percentage of total projects
|
|
396
|
+
pattern.frequency = (pattern.projects.length / totalProjects) * 100;
|
|
397
|
+
// Update confidence based on recent successes
|
|
398
|
+
if (pattern.projects.length > 5) {
|
|
399
|
+
pattern.confidence = Math.min(1, pattern.confidence + 0.1);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
async recordProjectOutcomes(intelligence) {
|
|
404
|
+
// Record project success metrics for learning
|
|
405
|
+
const projectMetrics = {
|
|
406
|
+
componentCount: intelligence.codebaseAwareness.files.filter((f) => f.type === "component").length,
|
|
407
|
+
averageComplexity: this.calculateAverageComplexity(intelligence.codebaseAwareness.files),
|
|
408
|
+
patternDiversity: intelligence.architecturalPatterns.length,
|
|
409
|
+
};
|
|
410
|
+
// Update best practice evidence
|
|
411
|
+
for (const practice of this.bestPractices) {
|
|
412
|
+
if (this.projectImplementsPractice(intelligence, practice)) {
|
|
413
|
+
practice.evidence.push({
|
|
414
|
+
projectId: this.projectId,
|
|
415
|
+
metrics: { ...projectMetrics, timestamp: Date.now() },
|
|
416
|
+
outcome: "Successful implementation",
|
|
417
|
+
timestamp: new Date().toISOString(),
|
|
418
|
+
});
|
|
419
|
+
practice.adoptionRate += 1;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
calculateAverageComplexity(files) {
|
|
424
|
+
if (files.length === 0)
|
|
425
|
+
return 0;
|
|
426
|
+
const totalComplexity = files.reduce((sum, file) => sum + (file.complexity || 0), 0);
|
|
427
|
+
return totalComplexity / files.length;
|
|
428
|
+
}
|
|
429
|
+
projectImplementsPractice(intelligence, practice) {
|
|
430
|
+
// Simplified check - in real implementation, this would be more sophisticated
|
|
431
|
+
switch (practice.id) {
|
|
432
|
+
case "typescript-strict-mode":
|
|
433
|
+
return intelligence.codebaseAwareness.files.some((f) => f.language === "typescript");
|
|
434
|
+
case "component-testing":
|
|
435
|
+
return intelligence.codebaseAwareness.files.some((f) => f.type === "test");
|
|
436
|
+
default:
|
|
437
|
+
return false;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
generateProjectId(projectPath) {
|
|
441
|
+
// Generate a unique but consistent ID for this project
|
|
442
|
+
const projectName = path_1.default.basename(projectPath);
|
|
443
|
+
const hash = projectName
|
|
444
|
+
.split("")
|
|
445
|
+
.reduce((acc, char) => ((acc << 5) - acc + char.charCodeAt(0)) & 0xfffff, 0);
|
|
446
|
+
return `${projectName}-${hash.toString(16)}`;
|
|
447
|
+
}
|
|
448
|
+
async saveLearningDatabase() {
|
|
449
|
+
const data = {
|
|
450
|
+
patterns: this.patterns,
|
|
451
|
+
bestPractices: this.bestPractices,
|
|
452
|
+
commonIssues: this.commonIssues,
|
|
453
|
+
recommendations: this.recommendations,
|
|
454
|
+
lastUpdated: new Date().toISOString(),
|
|
455
|
+
version: "1.0.0",
|
|
456
|
+
};
|
|
457
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(this.learningDatabase));
|
|
458
|
+
await fs_extra_1.default.writeJson(this.learningDatabase, data, { spaces: 2 });
|
|
459
|
+
}
|
|
460
|
+
// Public API methods
|
|
461
|
+
async getRecommendationsForProject() {
|
|
462
|
+
return this.recommendations.filter((r) => r.urgency === "high").slice(0, 5);
|
|
463
|
+
}
|
|
464
|
+
async getPatternSuggestions(category) {
|
|
465
|
+
let patterns = this.patterns.filter((p) => p.confidence > 0.7);
|
|
466
|
+
if (category) {
|
|
467
|
+
patterns = patterns.filter((p) => p.context.includes(category));
|
|
468
|
+
}
|
|
469
|
+
return patterns.sort((a, b) => b.frequency - a.frequency).slice(0, 10);
|
|
470
|
+
}
|
|
471
|
+
async getBestPracticesFor(category) {
|
|
472
|
+
return this.bestPractices
|
|
473
|
+
.filter((bp) => bp.category === category && bp.impact === "high")
|
|
474
|
+
.sort((a, b) => b.adoptionRate - a.adoptionRate);
|
|
475
|
+
}
|
|
476
|
+
async getCommonIssuesPreventionList() {
|
|
477
|
+
return this.commonIssues
|
|
478
|
+
.filter((issue) => issue.severity === "high" || issue.severity === "critical")
|
|
479
|
+
.flatMap((issue) => issue.prevention)
|
|
480
|
+
.slice(0, 10);
|
|
481
|
+
}
|
|
482
|
+
async generateLearningReport() {
|
|
483
|
+
const report = `
|
|
484
|
+
# Cross-Project Learning Report
|
|
485
|
+
|
|
486
|
+
## Pattern Analysis
|
|
487
|
+
- **Total Patterns Tracked**: ${this.patterns.length}
|
|
488
|
+
- **High-Confidence Patterns**: ${this.patterns.filter((p) => p.confidence > 0.8).length}
|
|
489
|
+
- **Emerging Patterns**: ${this.patterns.filter((p) => p.frequency > 70).length}
|
|
490
|
+
|
|
491
|
+
## Recommendations Summary
|
|
492
|
+
- **High Priority**: ${this.recommendations.filter((r) => r.urgency === "high").length}
|
|
493
|
+
- **Pattern Adoptions**: ${this.recommendations.filter((r) => r.type === "pattern").length}
|
|
494
|
+
- **Tool Suggestions**: ${this.recommendations.filter((r) => r.type === "tool").length}
|
|
495
|
+
|
|
496
|
+
## Top Patterns
|
|
497
|
+
${this.patterns
|
|
498
|
+
.sort((a, b) => b.frequency - a.frequency)
|
|
499
|
+
.slice(0, 5)
|
|
500
|
+
.map((p, i) => `${i + 1}. ${p.name} (${p.frequency}% adoption, ${Math.round(p.confidence * 100)}% confidence)`)
|
|
501
|
+
.join("\n")}
|
|
502
|
+
|
|
503
|
+
## Critical Issues to Avoid
|
|
504
|
+
${this.commonIssues
|
|
505
|
+
.filter((i) => i.severity === "critical")
|
|
506
|
+
.map((i, idx) => `${idx + 1}. ${i.pattern} (${i.frequency}% occurrence rate)`)
|
|
507
|
+
.join("\n")}
|
|
508
|
+
|
|
509
|
+
Generated: ${new Date().toISOString()}
|
|
510
|
+
`;
|
|
511
|
+
const reportPath = path_1.default.join(process.cwd(), ".mycontext", "learning-report.md");
|
|
512
|
+
await fs_extra_1.default.writeFile(reportPath, report);
|
|
513
|
+
return reportPath;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
exports.CrossProjectLearningEngine = CrossProjectLearningEngine;
|
|
517
|
+
//# sourceMappingURL=CrossProjectLearning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrossProjectLearning.js","sourceRoot":"","sources":["../../../src/agents/learning/CrossProjectLearning.ts"],"names":[],"mappings":"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"}
|