mycontext-cli 0.4.7 → 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 +261 -67
- 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 +303 -58
- 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 +49 -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 +42 -422
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate.d.ts +5 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +381 -23
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +12 -6
- package/dist/commands/init.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 +33 -16
- 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,293 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.DefaultIntentResolver = exports.AgentCommunicationManager = void 0;
|
|
40
|
+
const fs = __importStar(require("fs-extra"));
|
|
41
|
+
const path_1 = __importDefault(require("path"));
|
|
42
|
+
class AgentCommunicationManager {
|
|
43
|
+
constructor(orchestrator, intentResolver) {
|
|
44
|
+
this.messageHistory = [];
|
|
45
|
+
this.orchestrator = orchestrator;
|
|
46
|
+
this.intentResolver = intentResolver || new DefaultIntentResolver();
|
|
47
|
+
}
|
|
48
|
+
async sendMessage(message) {
|
|
49
|
+
this.messageHistory.push({
|
|
50
|
+
...message,
|
|
51
|
+
timestamp: new Date().toISOString(),
|
|
52
|
+
});
|
|
53
|
+
// Save communication log for debugging
|
|
54
|
+
await this.saveMessageLog(message);
|
|
55
|
+
}
|
|
56
|
+
async receiveMessage(agentName) {
|
|
57
|
+
// Get the latest message for this agent
|
|
58
|
+
const messages = this.messageHistory.filter((m) => m.to === agentName);
|
|
59
|
+
return messages.length > 0 ? messages[messages.length - 1] : null;
|
|
60
|
+
}
|
|
61
|
+
async broadcastMessage(message) {
|
|
62
|
+
const agentNames = this.orchestrator.listAgents();
|
|
63
|
+
for (const agentName of agentNames) {
|
|
64
|
+
await this.sendMessage({
|
|
65
|
+
...message,
|
|
66
|
+
to: agentName,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async getMessageHistory(agentName) {
|
|
71
|
+
if (!agentName)
|
|
72
|
+
return this.messageHistory;
|
|
73
|
+
return this.messageHistory.filter((m) => m.from === agentName || m.to === agentName);
|
|
74
|
+
}
|
|
75
|
+
async clearHistory() {
|
|
76
|
+
this.messageHistory = [];
|
|
77
|
+
}
|
|
78
|
+
async saveMessageLog(message) {
|
|
79
|
+
try {
|
|
80
|
+
const logDir = path_1.default.join(process.cwd(), ".mycontext", "agent-logs");
|
|
81
|
+
await fs.ensureDir(logDir);
|
|
82
|
+
const logFile = path_1.default.join(logDir, `communication-${new Date().toISOString().split("T")[0]}.json`);
|
|
83
|
+
let logs = [];
|
|
84
|
+
if (await fs.pathExists(logFile)) {
|
|
85
|
+
logs = await fs.readJson(logFile);
|
|
86
|
+
}
|
|
87
|
+
logs.push(message);
|
|
88
|
+
await fs.writeJson(logFile, logs, { spaces: 2 });
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
// Silent fail - logging shouldn't break the workflow
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Auto workflow orchestration
|
|
95
|
+
async runAutoWorkflow(initialAgent, context, config) {
|
|
96
|
+
let currentAgent = initialAgent;
|
|
97
|
+
let outputs = {};
|
|
98
|
+
let retryCount = 0;
|
|
99
|
+
let attempts = 0;
|
|
100
|
+
const maxAttempts = config.agents.length * 2; // Safety limit
|
|
101
|
+
while (currentAgent && attempts < maxAttempts) {
|
|
102
|
+
attempts++;
|
|
103
|
+
try {
|
|
104
|
+
// Execute current agent
|
|
105
|
+
const agentOutput = await this.orchestrator.executeAgent(currentAgent, {
|
|
106
|
+
context,
|
|
107
|
+
previousOutputs: outputs,
|
|
108
|
+
retryCount,
|
|
109
|
+
});
|
|
110
|
+
outputs[currentAgent] = agentOutput;
|
|
111
|
+
// Analyze output and determine next action
|
|
112
|
+
const intent = await this.intentResolver.analyzeOutput(agentOutput, context);
|
|
113
|
+
// Send completion message
|
|
114
|
+
await this.sendMessage({
|
|
115
|
+
id: `${currentAgent}-${Date.now()}`,
|
|
116
|
+
from: currentAgent,
|
|
117
|
+
to: "coordinator",
|
|
118
|
+
type: "completion",
|
|
119
|
+
payload: { output: agentOutput, intent },
|
|
120
|
+
timestamp: new Date().toISOString(),
|
|
121
|
+
});
|
|
122
|
+
// Check if we should trigger next agent
|
|
123
|
+
if (config.enableAutoTransition &&
|
|
124
|
+
(await this.intentResolver.shouldTriggerNextAgent(intent, context))) {
|
|
125
|
+
const nextAgent = await this.intentResolver.getNextAgent(intent, context);
|
|
126
|
+
if (nextAgent) {
|
|
127
|
+
// Create starter prompt for next agent
|
|
128
|
+
const starterPrompt = await this.intentResolver.createStarterPrompt(intent, context);
|
|
129
|
+
// Update context with new starter prompt
|
|
130
|
+
context = {
|
|
131
|
+
...context,
|
|
132
|
+
userPrompt: starterPrompt,
|
|
133
|
+
previousOutputs: outputs,
|
|
134
|
+
};
|
|
135
|
+
// Send request to next agent
|
|
136
|
+
await this.sendMessage({
|
|
137
|
+
id: `transition-${Date.now()}`,
|
|
138
|
+
from: currentAgent,
|
|
139
|
+
to: nextAgent,
|
|
140
|
+
type: "request",
|
|
141
|
+
payload: {
|
|
142
|
+
starterPrompt,
|
|
143
|
+
context: context,
|
|
144
|
+
intent,
|
|
145
|
+
},
|
|
146
|
+
timestamp: new Date().toISOString(),
|
|
147
|
+
});
|
|
148
|
+
currentAgent = nextAgent;
|
|
149
|
+
retryCount = 0;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
// No next agent, workflow complete
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else if (intent.action === "refine" &&
|
|
157
|
+
retryCount < config.retryLimit) {
|
|
158
|
+
// Same agent needs to retry/refine
|
|
159
|
+
retryCount++;
|
|
160
|
+
context = {
|
|
161
|
+
...context,
|
|
162
|
+
userPrompt: intent.nextSteps?.join(" ") || "Please refine the output",
|
|
163
|
+
previousOutputs: outputs,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
// Workflow complete or max retries reached
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
await this.sendMessage({
|
|
173
|
+
id: `error-${Date.now()}`,
|
|
174
|
+
from: currentAgent,
|
|
175
|
+
to: "coordinator",
|
|
176
|
+
type: "error",
|
|
177
|
+
payload: { error: error.message, retryCount },
|
|
178
|
+
timestamp: new Date().toISOString(),
|
|
179
|
+
});
|
|
180
|
+
if (retryCount < config.retryLimit) {
|
|
181
|
+
retryCount++;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
success: Object.keys(outputs).length > 0,
|
|
190
|
+
outputs,
|
|
191
|
+
messages: this.messageHistory,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
exports.AgentCommunicationManager = AgentCommunicationManager;
|
|
196
|
+
// Default intent resolver implementation
|
|
197
|
+
class DefaultIntentResolver {
|
|
198
|
+
async analyzeOutput(output, context) {
|
|
199
|
+
// Simple heuristic-based analysis
|
|
200
|
+
const confidence = this.calculateConfidence(output);
|
|
201
|
+
if (confidence < 0.3) {
|
|
202
|
+
return {
|
|
203
|
+
action: "refine",
|
|
204
|
+
reason: "Output quality below threshold",
|
|
205
|
+
confidence,
|
|
206
|
+
nextSteps: ["Improve output quality", "Add missing details"],
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
if (confidence > 0.8) {
|
|
210
|
+
return {
|
|
211
|
+
action: "complete",
|
|
212
|
+
reason: "High quality output achieved",
|
|
213
|
+
confidence,
|
|
214
|
+
nextSteps: ["Proceed to next stage"],
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
action: "generate",
|
|
219
|
+
reason: "Acceptable output, continue workflow",
|
|
220
|
+
confidence,
|
|
221
|
+
nextSteps: ["Continue to next agent"],
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
async shouldTriggerNextAgent(intent, context) {
|
|
225
|
+
return (intent.action === "complete" ||
|
|
226
|
+
(intent.action === "generate" && intent.confidence > 0.6));
|
|
227
|
+
}
|
|
228
|
+
async getNextAgent(intent, context) {
|
|
229
|
+
// Simple sequential flow for now
|
|
230
|
+
const sequence = ["CodeGenSubAgent", "QASubAgent", "DocsSubAgent"];
|
|
231
|
+
// Find current agent in sequence (based on context)
|
|
232
|
+
if (context.previousOutputs) {
|
|
233
|
+
const completed = Object.keys(context.previousOutputs);
|
|
234
|
+
for (let i = 0; i < sequence.length; i++) {
|
|
235
|
+
if (!completed.includes(sequence[i])) {
|
|
236
|
+
return sequence[i];
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return sequence[0]; // Default to first agent
|
|
241
|
+
}
|
|
242
|
+
async createStarterPrompt(intent, context) {
|
|
243
|
+
const basePrompt = context.userPrompt || "Generate high-quality output";
|
|
244
|
+
if (intent.action === "refine") {
|
|
245
|
+
return `${basePrompt}\n\nPlease refine the previous output with these improvements:\n${intent.nextSteps?.join("\n") || ""}`;
|
|
246
|
+
}
|
|
247
|
+
if (context.previousOutputs &&
|
|
248
|
+
Object.keys(context.previousOutputs).length > 0) {
|
|
249
|
+
const previousContext = Object.entries(context.previousOutputs)
|
|
250
|
+
.map(([agent, output]) => `${agent}: ${typeof output === "string"
|
|
251
|
+
? output.substring(0, 200) + "..."
|
|
252
|
+
: "Generated output"}`)
|
|
253
|
+
.join("\n");
|
|
254
|
+
return `${basePrompt}\n\nBuild upon previous agent outputs:\n${previousContext}`;
|
|
255
|
+
}
|
|
256
|
+
return basePrompt;
|
|
257
|
+
}
|
|
258
|
+
calculateConfidence(output) {
|
|
259
|
+
if (!output)
|
|
260
|
+
return 0;
|
|
261
|
+
if (typeof output === "string") {
|
|
262
|
+
// Simple heuristics for string output
|
|
263
|
+
const length = output.length;
|
|
264
|
+
const hasStructure = output.includes("\n") || output.includes("```");
|
|
265
|
+
const hasDetails = length > 100;
|
|
266
|
+
let score = 0.5;
|
|
267
|
+
if (hasStructure)
|
|
268
|
+
score += 0.2;
|
|
269
|
+
if (hasDetails)
|
|
270
|
+
score += 0.2;
|
|
271
|
+
if (length > 500)
|
|
272
|
+
score += 0.1;
|
|
273
|
+
return Math.min(score, 1.0);
|
|
274
|
+
}
|
|
275
|
+
if (typeof output === "object") {
|
|
276
|
+
// Object-based output confidence
|
|
277
|
+
const keys = Object.keys(output);
|
|
278
|
+
const hasCode = "code" in output;
|
|
279
|
+
const hasMetadata = "metadata" in output;
|
|
280
|
+
let score = 0.6;
|
|
281
|
+
if (hasCode)
|
|
282
|
+
score += 0.2;
|
|
283
|
+
if (hasMetadata)
|
|
284
|
+
score += 0.1;
|
|
285
|
+
if (keys.length > 3)
|
|
286
|
+
score += 0.1;
|
|
287
|
+
return Math.min(score, 1.0);
|
|
288
|
+
}
|
|
289
|
+
return 0.5; // Default confidence
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
exports.DefaultIntentResolver = DefaultIntentResolver;
|
|
293
|
+
//# sourceMappingURL=AgentCommunicationManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentCommunicationManager.js","sourceRoot":"","sources":["../../../src/agents/communication/AgentCommunicationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export interface CodeEvolutionEngine {
|
|
2
|
+
refactoringSuggestions: RefactoringSuggestion[];
|
|
3
|
+
performanceOptimizations: PerformanceOptimization[];
|
|
4
|
+
securityHardening: SecurityHardening[];
|
|
5
|
+
accessibilityEnhancements: AccessibilityEnhancement[];
|
|
6
|
+
}
|
|
7
|
+
export interface RefactoringSuggestion {
|
|
8
|
+
id: string;
|
|
9
|
+
file: string;
|
|
10
|
+
type: "extract-component" | "simplify-logic" | "reduce-complexity" | "improve-naming" | "consolidate-imports";
|
|
11
|
+
priority: "low" | "medium" | "high" | "critical";
|
|
12
|
+
description: string;
|
|
13
|
+
before: string;
|
|
14
|
+
after: string;
|
|
15
|
+
benefits: string[];
|
|
16
|
+
confidence: number;
|
|
17
|
+
estimatedEffort: string;
|
|
18
|
+
}
|
|
19
|
+
export interface PerformanceOptimization {
|
|
20
|
+
id: string;
|
|
21
|
+
file: string;
|
|
22
|
+
type: "memoization" | "lazy-loading" | "bundle-splitting" | "image-optimization" | "virtualization";
|
|
23
|
+
impact: "low" | "medium" | "high";
|
|
24
|
+
description: string;
|
|
25
|
+
implementation: string;
|
|
26
|
+
metrics: {
|
|
27
|
+
beforeScore: number;
|
|
28
|
+
afterScore: number;
|
|
29
|
+
improvement: string;
|
|
30
|
+
};
|
|
31
|
+
confidence: number;
|
|
32
|
+
}
|
|
33
|
+
export interface SecurityHardening {
|
|
34
|
+
id: string;
|
|
35
|
+
file: string;
|
|
36
|
+
vulnerability: string;
|
|
37
|
+
severity: "low" | "medium" | "high" | "critical";
|
|
38
|
+
fix: string;
|
|
39
|
+
automated: boolean;
|
|
40
|
+
compliance: string[];
|
|
41
|
+
}
|
|
42
|
+
export interface AccessibilityEnhancement {
|
|
43
|
+
id: string;
|
|
44
|
+
file: string;
|
|
45
|
+
issue: string;
|
|
46
|
+
wcagLevel: "A" | "AA" | "AAA";
|
|
47
|
+
fix: string;
|
|
48
|
+
automated: boolean;
|
|
49
|
+
userImpact: string;
|
|
50
|
+
}
|
|
51
|
+
export declare class CodeEvolutionEngineImpl implements CodeEvolutionEngine {
|
|
52
|
+
refactoringSuggestions: RefactoringSuggestion[];
|
|
53
|
+
performanceOptimizations: PerformanceOptimization[];
|
|
54
|
+
securityHardening: SecurityHardening[];
|
|
55
|
+
accessibilityEnhancements: AccessibilityEnhancement[];
|
|
56
|
+
private intelligence;
|
|
57
|
+
private architectAgent;
|
|
58
|
+
private securityAgent;
|
|
59
|
+
constructor(projectPath?: string);
|
|
60
|
+
analyzeAndEvolve(): Promise<CodeEvolutionEngine>;
|
|
61
|
+
private generateRefactoringSuggestions;
|
|
62
|
+
private analyzeFileForRefactoring;
|
|
63
|
+
private generatePerformanceOptimizations;
|
|
64
|
+
private analyzeFileForPerformance;
|
|
65
|
+
private generateSecurityHardening;
|
|
66
|
+
private analyzeFileForSecurity;
|
|
67
|
+
private generateAccessibilityEnhancements;
|
|
68
|
+
private analyzeFileForAccessibility;
|
|
69
|
+
private extractHighComplexitySection;
|
|
70
|
+
private suggestComponentExtraction;
|
|
71
|
+
private findLongParameterFunctions;
|
|
72
|
+
private generateObjectParameterVersion;
|
|
73
|
+
private findDuplicateCode;
|
|
74
|
+
private findPoorNaming;
|
|
75
|
+
private suggestBetterName;
|
|
76
|
+
private isDisplayComponent;
|
|
77
|
+
private generateMemoImplementation;
|
|
78
|
+
private findHeavyComputations;
|
|
79
|
+
private generateUseMemoImplementation;
|
|
80
|
+
private hasLargeList;
|
|
81
|
+
private generateVirtualizationImplementation;
|
|
82
|
+
private findImageOptimizations;
|
|
83
|
+
private canAutomate;
|
|
84
|
+
private getComplianceStandards;
|
|
85
|
+
private extractComponentName;
|
|
86
|
+
applyRefactoring(suggestionId: string): Promise<boolean>;
|
|
87
|
+
applyPerformanceOptimization(optimizationId: string): Promise<boolean>;
|
|
88
|
+
generateReport(): Promise<string>;
|
|
89
|
+
private getHighPriorityItems;
|
|
90
|
+
private getQuickWins;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=CodeEvolutionEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeEvolutionEngine.d.ts","sourceRoot":"","sources":["../../../src/agents/evolution/CodeEvolutionEngine.ts"],"names":[],"mappings":"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"}
|