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.
Files changed (70) hide show
  1. package/README.md +101 -35
  2. package/dist/agents/communication/AgentCommunicationManager.d.ts +27 -0
  3. package/dist/agents/communication/AgentCommunicationManager.d.ts.map +1 -0
  4. package/dist/agents/communication/AgentCommunicationManager.js +293 -0
  5. package/dist/agents/communication/AgentCommunicationManager.js.map +1 -0
  6. package/dist/agents/evolution/CodeEvolutionEngine.d.ts +92 -0
  7. package/dist/agents/evolution/CodeEvolutionEngine.d.ts.map +1 -0
  8. package/dist/agents/evolution/CodeEvolutionEngine.js +639 -0
  9. package/dist/agents/evolution/CodeEvolutionEngine.js.map +1 -0
  10. package/dist/agents/implementations/ArchitectAgent.d.ts +39 -0
  11. package/dist/agents/implementations/ArchitectAgent.d.ts.map +1 -0
  12. package/dist/agents/implementations/ArchitectAgent.js +345 -0
  13. package/dist/agents/implementations/ArchitectAgent.js.map +1 -0
  14. package/dist/agents/implementations/CodeGenSubAgent.d.ts +12 -0
  15. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  16. package/dist/agents/implementations/CodeGenSubAgent.js +296 -43
  17. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  18. package/dist/agents/implementations/PromptConstructorAgent.d.ts +50 -0
  19. package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -0
  20. package/dist/agents/implementations/PromptConstructorAgent.js +481 -0
  21. package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -0
  22. package/dist/agents/implementations/SecurityAgent.d.ts +31 -0
  23. package/dist/agents/implementations/SecurityAgent.d.ts.map +1 -0
  24. package/dist/agents/implementations/SecurityAgent.js +453 -0
  25. package/dist/agents/implementations/SecurityAgent.js.map +1 -0
  26. package/dist/agents/intelligence/ProjectIntelligence.d.ts +127 -0
  27. package/dist/agents/intelligence/ProjectIntelligence.d.ts.map +1 -0
  28. package/dist/agents/intelligence/ProjectIntelligence.js +456 -0
  29. package/dist/agents/intelligence/ProjectIntelligence.js.map +1 -0
  30. package/dist/agents/interfaces/AgentCommunication.d.ts +65 -0
  31. package/dist/agents/interfaces/AgentCommunication.d.ts.map +1 -0
  32. package/dist/agents/interfaces/AgentCommunication.js +13 -0
  33. package/dist/agents/interfaces/AgentCommunication.js.map +1 -0
  34. package/dist/agents/learning/CrossProjectLearning.d.ts +99 -0
  35. package/dist/agents/learning/CrossProjectLearning.d.ts.map +1 -0
  36. package/dist/agents/learning/CrossProjectLearning.js +517 -0
  37. package/dist/agents/learning/CrossProjectLearning.js.map +1 -0
  38. package/dist/cli.js +47 -0
  39. package/dist/cli.js.map +1 -1
  40. package/dist/commands/agent-flow.d.ts +21 -0
  41. package/dist/commands/agent-flow.d.ts.map +1 -0
  42. package/dist/commands/agent-flow.js +225 -0
  43. package/dist/commands/agent-flow.js.map +1 -0
  44. package/dist/commands/generate-components.d.ts +0 -13
  45. package/dist/commands/generate-components.d.ts.map +1 -1
  46. package/dist/commands/generate-components.js +23 -385
  47. package/dist/commands/generate-components.js.map +1 -1
  48. package/dist/commands/generate.d.ts +4 -1
  49. package/dist/commands/generate.d.ts.map +1 -1
  50. package/dist/commands/generate.js +173 -1
  51. package/dist/commands/generate.js.map +1 -1
  52. package/dist/commands/predict.d.ts +36 -0
  53. package/dist/commands/predict.d.ts.map +1 -0
  54. package/dist/commands/predict.js +539 -0
  55. package/dist/commands/predict.js.map +1 -0
  56. package/dist/utils/clean.d.ts +6 -0
  57. package/dist/utils/clean.d.ts.map +1 -0
  58. package/dist/utils/clean.js +220 -0
  59. package/dist/utils/clean.js.map +1 -0
  60. package/dist/utils/githubModelsClient.d.ts.map +1 -1
  61. package/dist/utils/githubModelsClient.js +11 -12
  62. package/dist/utils/githubModelsClient.js.map +1 -1
  63. package/dist/utils/hybridAIClient.d.ts +1 -0
  64. package/dist/utils/hybridAIClient.d.ts.map +1 -1
  65. package/dist/utils/hybridAIClient.js +23 -9
  66. package/dist/utils/hybridAIClient.js.map +1 -1
  67. package/dist/utils/ollamaClient.d.ts.map +1 -1
  68. package/dist/utils/ollamaClient.js +6 -4
  69. package/dist/utils/ollamaClient.js.map +1 -1
  70. package/package.json +2 -1
@@ -0,0 +1,456 @@
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.ProjectIntelligenceEngine = void 0;
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const glob_1 = __importDefault(require("glob"));
10
+ class ProjectIntelligenceEngine {
11
+ constructor(projectPath = process.cwd()) {
12
+ this.projectPath = projectPath;
13
+ this.intelligence = {
14
+ codebaseAwareness: {
15
+ files: [],
16
+ dependencies: {},
17
+ componentHierarchy: {},
18
+ apiEndpoints: [],
19
+ },
20
+ architecturalPatterns: [],
21
+ domainKnowledge: {
22
+ businessTerms: [],
23
+ userPersonas: [],
24
+ workflows: [],
25
+ rules: [],
26
+ },
27
+ historicalDecisions: [],
28
+ };
29
+ }
30
+ async analyzeProject() {
31
+ console.log("🧠 Analyzing project intelligence...");
32
+ // Analyze codebase structure
33
+ await this.analyzeCodebase();
34
+ // Extract architectural patterns
35
+ await this.extractPatterns();
36
+ // Build domain knowledge from context files
37
+ await this.extractDomainKnowledge();
38
+ // Load historical decisions
39
+ await this.loadHistoricalDecisions();
40
+ // Save intelligence cache
41
+ await this.saveIntelligenceCache();
42
+ return this.intelligence;
43
+ }
44
+ async analyzeCodebase() {
45
+ const pattern = "**/*.{ts,tsx,js,jsx}";
46
+ const files = await new Promise((resolve, reject) => {
47
+ (0, glob_1.default)(pattern, {
48
+ cwd: this.projectPath,
49
+ ignore: [
50
+ "**/node_modules/**",
51
+ "**/.git/**",
52
+ "**/dist/**",
53
+ "**/build/**",
54
+ ],
55
+ }, (err, matches) => {
56
+ if (err)
57
+ reject(err);
58
+ else
59
+ resolve(matches);
60
+ });
61
+ });
62
+ for (const file of files) {
63
+ const metadata = await this.analyzeFile(file);
64
+ this.intelligence.codebaseAwareness.files.push(metadata);
65
+ }
66
+ // Analyze API routes
67
+ await this.analyzeAPIRoutes();
68
+ }
69
+ async analyzeFile(filePath) {
70
+ const fullPath = path_1.default.join(this.projectPath, filePath);
71
+ const content = await fs_extra_1.default.readFile(fullPath, "utf-8");
72
+ const stats = await fs_extra_1.default.stat(fullPath);
73
+ return {
74
+ path: filePath,
75
+ type: this.detectFileType(filePath, content),
76
+ language: this.detectLanguage(filePath),
77
+ complexity: this.calculateComplexity(content),
78
+ dependencies: this.extractDependencies(content),
79
+ exports: this.extractExports(content),
80
+ patterns: this.detectPatterns(content),
81
+ lastModified: stats.mtime,
82
+ };
83
+ }
84
+ detectFileType(filePath, content) {
85
+ if (filePath.includes("/api/") || filePath.includes("/pages/api/"))
86
+ return "api";
87
+ if (filePath.includes(".test.") || filePath.includes(".spec."))
88
+ return "test";
89
+ if (filePath.includes("config") || filePath.endsWith(".config.js"))
90
+ return "config";
91
+ if (filePath.includes("/pages/") ||
92
+ (filePath.includes("/app/") && filePath.includes("page.")))
93
+ return "page";
94
+ if (content.includes("export default function") ||
95
+ content.includes("export const"))
96
+ return "component";
97
+ return "utility";
98
+ }
99
+ detectLanguage(filePath) {
100
+ const ext = path_1.default.extname(filePath);
101
+ const langMap = {
102
+ ".ts": "typescript",
103
+ ".tsx": "typescript-react",
104
+ ".js": "javascript",
105
+ ".jsx": "javascript-react",
106
+ ".py": "python",
107
+ ".rb": "ruby",
108
+ ".go": "go",
109
+ ".rs": "rust",
110
+ ".vue": "vue",
111
+ ".svelte": "svelte",
112
+ };
113
+ return langMap[ext] || "unknown";
114
+ }
115
+ calculateComplexity(content) {
116
+ // Simple complexity calculation based on cyclomatic complexity indicators
117
+ const complexityIndicators = [
118
+ /if\s*\(/g,
119
+ /else\s+if/g,
120
+ /switch\s*\(/g,
121
+ /case\s+/g,
122
+ /for\s*\(/g,
123
+ /while\s*\(/g,
124
+ /catch\s*\(/g,
125
+ /\?\s*.*\s*:/g, // ternary
126
+ /&&|\|\|/g, // logical operators
127
+ ];
128
+ let complexity = 1; // Base complexity
129
+ for (const pattern of complexityIndicators) {
130
+ const matches = content.match(pattern);
131
+ if (matches)
132
+ complexity += matches.length;
133
+ }
134
+ return complexity;
135
+ }
136
+ extractDependencies(content) {
137
+ const imports = [];
138
+ // ES6 imports
139
+ const importMatches = content.match(/import.*from\s+['"]([^'"]+)['"]/g);
140
+ if (importMatches) {
141
+ imports.push(...importMatches
142
+ .map((match) => {
143
+ const moduleMatch = match.match(/from\s+['"]([^'"]+)['"]/);
144
+ return moduleMatch ? moduleMatch[1] : "";
145
+ })
146
+ .filter(Boolean));
147
+ }
148
+ // CommonJS requires
149
+ const requireMatches = content.match(/require\(['"]([^'"]+)['"]\)/g);
150
+ if (requireMatches) {
151
+ imports.push(...requireMatches
152
+ .map((match) => {
153
+ const moduleMatch = match.match(/require\(['"]([^'"]+)['"]\)/);
154
+ return moduleMatch ? moduleMatch[1] : "";
155
+ })
156
+ .filter(Boolean));
157
+ }
158
+ return [...new Set(imports)];
159
+ }
160
+ extractExports(content) {
161
+ const exports = [];
162
+ // Named exports
163
+ const namedExports = content.match(/export\s+(?:const|function|class|interface|type)\s+(\w+)/g);
164
+ if (namedExports) {
165
+ exports.push(...namedExports.map((exp) => exp.split(/\s+/).pop() || ""));
166
+ }
167
+ // Default exports
168
+ if (content.includes("export default")) {
169
+ const defaultMatch = content.match(/export\s+default\s+(?:function\s+)?(\w+)/);
170
+ if (defaultMatch)
171
+ exports.push(defaultMatch[1]);
172
+ }
173
+ return exports.filter(Boolean);
174
+ }
175
+ detectPatterns(content) {
176
+ const patterns = [];
177
+ // React patterns
178
+ if (content.includes("useState"))
179
+ patterns.push("react-hooks");
180
+ if (content.includes("useEffect"))
181
+ patterns.push("react-effects");
182
+ if (content.includes("createContext"))
183
+ patterns.push("react-context");
184
+ if (content.includes("forwardRef"))
185
+ patterns.push("react-ref-forwarding");
186
+ // TypeScript patterns
187
+ if (content.includes("interface "))
188
+ patterns.push("typescript-interfaces");
189
+ if (content.includes("type "))
190
+ patterns.push("typescript-types");
191
+ if (content.includes("generic"))
192
+ patterns.push("typescript-generics");
193
+ // Next.js patterns
194
+ if (content.includes("getServerSideProps"))
195
+ patterns.push("nextjs-ssr");
196
+ if (content.includes("getStaticProps"))
197
+ patterns.push("nextjs-ssg");
198
+ if (content.includes("use client"))
199
+ patterns.push("nextjs-client-components");
200
+ // Architecture patterns
201
+ if (content.includes("Provider"))
202
+ patterns.push("provider-pattern");
203
+ if (content.includes("Context"))
204
+ patterns.push("context-pattern");
205
+ if (content.includes("HOC") || content.includes("withAuth"))
206
+ patterns.push("hoc-pattern");
207
+ return patterns;
208
+ }
209
+ async analyzeAPIRoutes() {
210
+ const apiFiles = this.intelligence.codebaseAwareness.files.filter((f) => f.type === "api");
211
+ for (const file of apiFiles) {
212
+ const fullPath = path_1.default.join(this.projectPath, file.path);
213
+ const content = await fs_extra_1.default.readFile(fullPath, "utf-8");
214
+ // Extract HTTP methods
215
+ const methods = this.extractHTTPMethods(content);
216
+ const route = this.convertFilePathToRoute(file.path);
217
+ this.intelligence.codebaseAwareness.apiEndpoints.push({
218
+ path: route,
219
+ methods,
220
+ file: file.path,
221
+ middleware: this.extractMiddleware(content),
222
+ parameters: this.extractParameters(content),
223
+ });
224
+ }
225
+ }
226
+ extractHTTPMethods(content) {
227
+ const methods = [];
228
+ const httpMethods = ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"];
229
+ for (const method of httpMethods) {
230
+ if (content.includes(`export async function ${method}`) ||
231
+ content.includes(`async function ${method}`) ||
232
+ content.includes(`'${method}'`) ||
233
+ content.includes(`"${method}"`)) {
234
+ methods.push(method);
235
+ }
236
+ }
237
+ return methods;
238
+ }
239
+ convertFilePathToRoute(filePath) {
240
+ // Convert Next.js file-based routing to actual routes
241
+ return filePath
242
+ .replace(/^.*\/api\//, "/api/")
243
+ .replace(/\/route\.(ts|js)$/, "")
244
+ .replace(/\[([^\]]+)\]/g, ":$1")
245
+ .replace(/\/index$/, "");
246
+ }
247
+ extractMiddleware(content) {
248
+ const middleware = [];
249
+ // Common middleware patterns
250
+ const middlewarePatterns = [
251
+ /auth/i,
252
+ /cors/i,
253
+ /validate/i,
254
+ /middleware/i,
255
+ /guard/i,
256
+ ];
257
+ for (const pattern of middlewarePatterns) {
258
+ if (pattern.test(content)) {
259
+ middleware.push(pattern.source);
260
+ }
261
+ }
262
+ return middleware;
263
+ }
264
+ extractParameters(content) {
265
+ const params = [];
266
+ // Extract query parameters
267
+ const queryParams = content.match(/query\.(\w+)/g);
268
+ if (queryParams) {
269
+ params.push(...queryParams.map((p) => p.replace("query.", "")));
270
+ }
271
+ // Extract path parameters
272
+ const pathParams = content.match(/params\.(\w+)/g);
273
+ if (pathParams) {
274
+ params.push(...pathParams.map((p) => p.replace("params.", "")));
275
+ }
276
+ return [...new Set(params)];
277
+ }
278
+ async extractPatterns() {
279
+ // Analyze all detected patterns and calculate frequency
280
+ const patternCounts = {};
281
+ for (const file of this.intelligence.codebaseAwareness.files) {
282
+ for (const pattern of file.patterns) {
283
+ patternCounts[pattern] = (patternCounts[pattern] || 0) + 1;
284
+ }
285
+ }
286
+ const totalFiles = this.intelligence.codebaseAwareness.files.length;
287
+ for (const [pattern, count] of Object.entries(patternCounts)) {
288
+ this.intelligence.architecturalPatterns.push({
289
+ id: `pattern_${pattern}`,
290
+ name: pattern,
291
+ pattern: pattern,
292
+ frequency: count,
293
+ confidence: count / totalFiles,
294
+ examples: this.findPatternExamples(pattern),
295
+ context: this.determinePatternContext(pattern),
296
+ });
297
+ }
298
+ }
299
+ findPatternExamples(pattern) {
300
+ return this.intelligence.codebaseAwareness.files
301
+ .filter((f) => f.patterns.includes(pattern))
302
+ .slice(0, 3)
303
+ .map((f) => f.path);
304
+ }
305
+ determinePatternContext(pattern) {
306
+ const contextMap = {
307
+ "react-hooks": "State management and side effects in React components",
308
+ "typescript-interfaces": "Type definitions and contracts",
309
+ "nextjs-ssr": "Server-side rendering for dynamic content",
310
+ "provider-pattern": "Dependency injection and state sharing",
311
+ "hoc-pattern": "Component composition and behavior enhancement",
312
+ };
313
+ return contextMap[pattern] || "General application pattern";
314
+ }
315
+ async extractDomainKnowledge() {
316
+ const contextDir = path_1.default.join(this.projectPath, ".mycontext");
317
+ if (await fs_extra_1.default.pathExists(contextDir)) {
318
+ // Extract from PRD
319
+ await this.extractFromPRD(contextDir);
320
+ // Extract from types
321
+ await this.extractFromTypes(contextDir);
322
+ // Extract from brand guidelines
323
+ await this.extractFromBrand(contextDir);
324
+ }
325
+ }
326
+ async extractFromPRD(contextDir) {
327
+ const prdPath = path_1.default.join(contextDir, "01-prd.md");
328
+ if (await fs_extra_1.default.pathExists(prdPath)) {
329
+ const content = await fs_extra_1.default.readFile(prdPath, "utf-8");
330
+ // Extract user personas
331
+ const personaMatches = content.match(/\*\*([^*]+)\*\*:\s*([^*\n]+)/g);
332
+ if (personaMatches) {
333
+ for (const match of personaMatches) {
334
+ const [, name, description] = match.match(/\*\*([^*]+)\*\*:\s*([^*\n]+)/) || [];
335
+ if (name && description) {
336
+ this.intelligence.domainKnowledge.userPersonas.push({
337
+ name: name.trim(),
338
+ description: description.trim(),
339
+ needs: [],
340
+ behaviors: [],
341
+ });
342
+ }
343
+ }
344
+ }
345
+ // Extract business terms
346
+ const termMatches = content.match(/[A-Z][a-z]+(?:\s+[A-Z][a-z]+)*/g);
347
+ if (termMatches) {
348
+ const uniqueTerms = [...new Set(termMatches)].filter((term) => term.length > 3 && !["User", "Component", "System"].includes(term));
349
+ for (const term of uniqueTerms.slice(0, 10)) {
350
+ this.intelligence.domainKnowledge.businessTerms.push({
351
+ term,
352
+ definition: `Domain term extracted from PRD: ${term}`,
353
+ context: "PRD document",
354
+ aliases: [],
355
+ });
356
+ }
357
+ }
358
+ }
359
+ }
360
+ async extractFromTypes(contextDir) {
361
+ const typesPath = path_1.default.join(contextDir, "02-types.ts");
362
+ if (await fs_extra_1.default.pathExists(typesPath)) {
363
+ const content = await fs_extra_1.default.readFile(typesPath, "utf-8");
364
+ // Extract interface names as business entities
365
+ const interfaceMatches = content.match(/interface\s+(\w+)/g);
366
+ if (interfaceMatches) {
367
+ for (const match of interfaceMatches) {
368
+ const interfaceName = match.replace("interface ", "");
369
+ this.intelligence.domainKnowledge.businessTerms.push({
370
+ term: interfaceName,
371
+ definition: `Type definition for ${interfaceName}`,
372
+ context: "Type system",
373
+ aliases: [],
374
+ });
375
+ }
376
+ }
377
+ }
378
+ }
379
+ async extractFromBrand(contextDir) {
380
+ const brandPath = path_1.default.join(contextDir, "03-branding.md");
381
+ if (await fs_extra_1.default.pathExists(brandPath)) {
382
+ const content = await fs_extra_1.default.readFile(brandPath, "utf-8");
383
+ // Extract brand values and principles
384
+ const principleMatches = content.match(/\*\*([^*]+)\*\*:\s*([^*\n]+)/g);
385
+ if (principleMatches) {
386
+ for (const match of principleMatches) {
387
+ const [, principle, description] = match.match(/\*\*([^*]+)\*\*:\s*([^*\n]+)/) || [];
388
+ if (principle && description) {
389
+ this.intelligence.domainKnowledge.rules.push({
390
+ id: `brand_${principle.toLowerCase().replace(/\s+/g, "_")}`,
391
+ rule: principle,
392
+ description: description.trim(),
393
+ scope: "Brand guidelines",
394
+ priority: "medium",
395
+ });
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }
401
+ async loadHistoricalDecisions() {
402
+ const decisionsPath = path_1.default.join(this.projectPath, ".mycontext", "decisions.json");
403
+ if (await fs_extra_1.default.pathExists(decisionsPath)) {
404
+ try {
405
+ const decisions = await fs_extra_1.default.readJson(decisionsPath);
406
+ this.intelligence.historicalDecisions = decisions;
407
+ }
408
+ catch (error) {
409
+ console.warn("Could not load historical decisions:", error);
410
+ }
411
+ }
412
+ }
413
+ async recordDecision(decision) {
414
+ const record = {
415
+ id: `decision_${Date.now()}`,
416
+ timestamp: new Date(),
417
+ ...decision,
418
+ };
419
+ this.intelligence.historicalDecisions.push(record);
420
+ await this.saveHistoricalDecisions();
421
+ }
422
+ async saveHistoricalDecisions() {
423
+ const decisionsPath = path_1.default.join(this.projectPath, ".mycontext", "decisions.json");
424
+ await fs_extra_1.default.ensureDir(path_1.default.dirname(decisionsPath));
425
+ await fs_extra_1.default.writeJson(decisionsPath, this.intelligence.historicalDecisions, {
426
+ spaces: 2,
427
+ });
428
+ }
429
+ async saveIntelligenceCache() {
430
+ const cachePath = path_1.default.join(this.projectPath, ".mycontext", "intelligence-cache.json");
431
+ await fs_extra_1.default.ensureDir(path_1.default.dirname(cachePath));
432
+ await fs_extra_1.default.writeJson(cachePath, this.intelligence, { spaces: 2 });
433
+ }
434
+ async getRecommendations() {
435
+ const recommendations = [];
436
+ // Analyze patterns for recommendations
437
+ const patterns = this.intelligence.architecturalPatterns;
438
+ // Check for missing common patterns
439
+ const hasReactHooks = patterns.some((p) => p.name === "react-hooks");
440
+ const hasTypeScript = patterns.some((p) => p.name.includes("typescript"));
441
+ if (!hasReactHooks && patterns.some((p) => p.name.includes("react"))) {
442
+ recommendations.push("Consider using React hooks for state management");
443
+ }
444
+ if (!hasTypeScript) {
445
+ recommendations.push("Consider adding TypeScript for better type safety");
446
+ }
447
+ // Check complexity recommendations
448
+ const highComplexityFiles = this.intelligence.codebaseAwareness.files.filter((f) => f.complexity > 10);
449
+ if (highComplexityFiles.length > 0) {
450
+ recommendations.push(`Consider refactoring ${highComplexityFiles.length} high-complexity files`);
451
+ }
452
+ return recommendations;
453
+ }
454
+ }
455
+ exports.ProjectIntelligenceEngine = ProjectIntelligenceEngine;
456
+ //# sourceMappingURL=ProjectIntelligence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectIntelligence.js","sourceRoot":"","sources":["../../../src/agents/intelligence/ProjectIntelligence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ export interface AgentMessage {
2
+ id: string;
3
+ from: string;
4
+ to: string;
5
+ type: "context" | "feedback" | "request" | "completion" | "error";
6
+ payload: any;
7
+ timestamp: string;
8
+ metadata?: Record<string, any>;
9
+ }
10
+ export interface AgentIntent {
11
+ action: "generate" | "validate" | "refine" | "complete" | "skip";
12
+ target?: string;
13
+ reason?: string;
14
+ confidence: number;
15
+ nextSteps?: string[];
16
+ }
17
+ export interface AgentContext {
18
+ prd?: string;
19
+ types?: string;
20
+ brand?: string;
21
+ componentList?: any;
22
+ projectStructure?: string;
23
+ previousOutputs?: Record<string, any>;
24
+ userPrompt?: string;
25
+ }
26
+ export interface AgentFeedback {
27
+ score: number;
28
+ issues: Array<{
29
+ type: "error" | "warning" | "suggestion";
30
+ message: string;
31
+ fix?: string;
32
+ }>;
33
+ recommendations: string[];
34
+ shouldRetry: boolean;
35
+ nextAgent?: string;
36
+ }
37
+ export interface AgentCommunicationHandler {
38
+ sendMessage(message: AgentMessage): Promise<void>;
39
+ receiveMessage(agentName: string): Promise<AgentMessage | null>;
40
+ broadcastMessage(message: Omit<AgentMessage, "to">): Promise<void>;
41
+ getMessageHistory(agentName?: string): Promise<AgentMessage[]>;
42
+ clearHistory(): Promise<void>;
43
+ }
44
+ export interface IntentResolver {
45
+ analyzeOutput(output: any, context: AgentContext): Promise<AgentIntent>;
46
+ shouldTriggerNextAgent(intent: AgentIntent, context: AgentContext): Promise<boolean>;
47
+ getNextAgent(intent: AgentIntent, context: AgentContext): Promise<string | null>;
48
+ createStarterPrompt(intent: AgentIntent, context: AgentContext): Promise<string>;
49
+ }
50
+ export declare enum CommunicationPattern {
51
+ SEQUENTIAL = "sequential",// A -> B -> C
52
+ PARALLEL = "parallel",// A + B + C simultaneously
53
+ FEEDBACK_LOOP = "feedback",// A -> B -> feedback to A -> retry
54
+ VALIDATION_CHAIN = "validation",// A -> QA -> B -> QA -> C
55
+ AUTO_ORCHESTRATION = "auto"
56
+ }
57
+ export interface WorkflowConfig {
58
+ pattern: CommunicationPattern;
59
+ agents: string[];
60
+ retryLimit: number;
61
+ qualityThreshold: number;
62
+ timeoutMs: number;
63
+ enableAutoTransition: boolean;
64
+ }
65
+ //# sourceMappingURL=AgentCommunication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentCommunication.d.ts","sourceRoot":"","sources":["../../../src/agents/interfaces/AgentCommunication.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommunicationPattern = void 0;
4
+ // Agent communication patterns
5
+ var CommunicationPattern;
6
+ (function (CommunicationPattern) {
7
+ CommunicationPattern["SEQUENTIAL"] = "sequential";
8
+ CommunicationPattern["PARALLEL"] = "parallel";
9
+ CommunicationPattern["FEEDBACK_LOOP"] = "feedback";
10
+ CommunicationPattern["VALIDATION_CHAIN"] = "validation";
11
+ CommunicationPattern["AUTO_ORCHESTRATION"] = "auto";
12
+ })(CommunicationPattern || (exports.CommunicationPattern = CommunicationPattern = {}));
13
+ //# sourceMappingURL=AgentCommunication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentCommunication.js","sourceRoot":"","sources":["../../../src/agents/interfaces/AgentCommunication.ts"],"names":[],"mappings":";;;AAgEA,+BAA+B;AAC/B,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,iDAAyB,CAAA;IACzB,6CAAqB,CAAA;IACrB,kDAA0B,CAAA;IAC1B,uDAA+B,CAAA;IAC/B,mDAA2B,CAAA;AAC7B,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B"}