mycontext-cli 1.0.80 → 1.0.82

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.
@@ -0,0 +1,554 @@
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.BuildStrategyAgent = void 0;
7
+ const hybridAIClient_1 = require("../../utils/hybridAIClient");
8
+ const contextLoader_1 = require("../../utils/contextLoader");
9
+ const definitions_1 = require("../personalities/definitions");
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const path_1 = __importDefault(require("path"));
12
+ class BuildStrategyAgent {
13
+ constructor() {
14
+ this.name = "BuildStrategyAgent";
15
+ this.description = "AI-powered build strategy expert that generates 100% accurate, project-specific development plans";
16
+ const personality = (0, definitions_1.getSubAgentPersonality)(this.name);
17
+ if (personality) {
18
+ this.personality = personality.systemPrompt;
19
+ this.llmProvider = personality.llmProvider;
20
+ this.expertise = personality.expertise;
21
+ }
22
+ else {
23
+ this.personality = "strategic, analytical, project-focused expert";
24
+ this.llmProvider = "hybrid";
25
+ this.expertise = [
26
+ "project-planning",
27
+ "development-strategy",
28
+ "risk-assessment",
29
+ "team-coordination",
30
+ ];
31
+ }
32
+ this.aiClient = new hybridAIClient_1.HybridAIClient();
33
+ this.contextLoader = new contextLoader_1.ContextLoader(process.cwd());
34
+ }
35
+ async run(input) {
36
+ console.log(chalk_1.default.blue("🧠 Build Strategy Agent: Analyzing project context..."));
37
+ try {
38
+ // Step 1: Load and analyze project context
39
+ const contextAnalysis = await this.analyzeProjectContext(input.projectPath);
40
+ // Step 2: Generate LLM-powered insights
41
+ const llmInsights = await this.generateLLMInsights(contextAnalysis, input.userPreferences);
42
+ // Step 3: Generate strategy based on input type
43
+ let output;
44
+ switch (input.strategyType) {
45
+ case "recommend":
46
+ output = await this.generateRecommendations(contextAnalysis, llmInsights, input.userPreferences);
47
+ break;
48
+ case "plan":
49
+ output = await this.generateBuildPlan(contextAnalysis, llmInsights, input.specificStrategy);
50
+ break;
51
+ case "tasks":
52
+ output = await this.generateTaskList(contextAnalysis, llmInsights, input.specificStrategy, input.phaseNumber);
53
+ break;
54
+ case "compare":
55
+ output = await this.generateComparison(contextAnalysis, llmInsights);
56
+ break;
57
+ default:
58
+ output = await this.generateRecommendations(contextAnalysis, llmInsights, input.userPreferences);
59
+ }
60
+ console.log(chalk_1.default.green("✅ Build Strategy Agent: Strategy generated successfully!"));
61
+ return output;
62
+ }
63
+ catch (error) {
64
+ console.error(chalk_1.default.red("❌ Build Strategy Agent failed:"), error);
65
+ throw error;
66
+ }
67
+ }
68
+ async validate(input) {
69
+ return !!input.projectPath;
70
+ }
71
+ async cleanup() {
72
+ // No cleanup needed
73
+ }
74
+ async getStatus() {
75
+ return {
76
+ name: this.name,
77
+ status: "idle",
78
+ errorCount: 0,
79
+ successCount: 0,
80
+ };
81
+ }
82
+ async analyzeProjectContext(projectPath) {
83
+ const context = await this.contextLoader.loadProjectContext({
84
+ verbose: false,
85
+ });
86
+ // Extract components from component list
87
+ const components = [];
88
+ if (context.componentList && Array.isArray(context.componentList)) {
89
+ context.componentList.forEach((comp) => {
90
+ if (typeof comp === "string") {
91
+ components.push(comp);
92
+ }
93
+ else if (comp.name) {
94
+ components.push(comp.name);
95
+ }
96
+ });
97
+ }
98
+ // Extract user roles from PRD and user flows
99
+ const userRoles = [];
100
+ const prdText = context.prd || "";
101
+ const userFlowsText = context.userFlows || "";
102
+ const rolePatterns = [
103
+ /(?:user|users?)\s+(?:role|type|persona)s?[:\s]+([^.\n]+)/gi,
104
+ /(?:admin|administrator)s?/gi,
105
+ /(?:customer|client)s?/gi,
106
+ /(?:guest|visitor)s?/gi,
107
+ /(?:moderator|manager)s?/gi,
108
+ ];
109
+ rolePatterns.forEach((pattern) => {
110
+ const matches = [
111
+ ...prdText.matchAll(pattern),
112
+ ...userFlowsText.matchAll(pattern),
113
+ ];
114
+ matches.forEach((match) => {
115
+ if (match[1]) {
116
+ const role = match[1].trim().toLowerCase();
117
+ if (!userRoles.includes(role)) {
118
+ userRoles.push(role);
119
+ }
120
+ }
121
+ else if (match[0]) {
122
+ const role = match[0].trim().toLowerCase();
123
+ if (!userRoles.includes(role)) {
124
+ userRoles.push(role);
125
+ }
126
+ }
127
+ });
128
+ });
129
+ if (userRoles.length === 0) {
130
+ userRoles.push("user", "admin");
131
+ }
132
+ // Extract tech stack
133
+ const techStack = [];
134
+ const techPatterns = [
135
+ /next\.?js/gi,
136
+ /react/gi,
137
+ /typescript/gi,
138
+ /tailwind/gi,
139
+ /node\.?js/gi,
140
+ /prisma/gi,
141
+ /supabase/gi,
142
+ /firebase/gi,
143
+ /mongodb/gi,
144
+ /postgresql/gi,
145
+ /mysql/gi,
146
+ ];
147
+ const allText = `${context.prd} ${context.types} ${context.technicalSpecs}`;
148
+ techPatterns.forEach((pattern) => {
149
+ const matches = allText.match(pattern);
150
+ if (matches) {
151
+ matches.forEach((match) => {
152
+ const tech = match.toLowerCase();
153
+ if (!techStack.includes(tech)) {
154
+ techStack.push(tech);
155
+ }
156
+ });
157
+ }
158
+ });
159
+ if (techStack.length === 0) {
160
+ techStack.push("next.js", "typescript", "tailwind css");
161
+ }
162
+ // Calculate context completeness
163
+ const loadedFiles = [
164
+ context.prd,
165
+ context.types,
166
+ context.brand,
167
+ context.componentList,
168
+ context.features,
169
+ context.userFlows,
170
+ context.edgeCases,
171
+ context.technicalSpecs,
172
+ ].filter(Boolean).length;
173
+ const accuracyLevel = loadedFiles >= 6 ? "excellent" : loadedFiles >= 4 ? "good" : "limited";
174
+ return {
175
+ projectName: path_1.default.basename(projectPath),
176
+ description: context.prd
177
+ ? context.prd.substring(0, 200) + "..."
178
+ : "MyContext Project",
179
+ components,
180
+ userRoles,
181
+ techStack,
182
+ contextCompleteness: loadedFiles,
183
+ accuracyLevel,
184
+ rawContext: context,
185
+ };
186
+ }
187
+ async generateLLMInsights(contextAnalysis, userPreferences) {
188
+ const prompt = `You are an expert software development strategist. Analyze this project context and provide strategic insights.
189
+
190
+ PROJECT CONTEXT:
191
+ - Name: ${contextAnalysis.projectName}
192
+ - Description: ${contextAnalysis.description}
193
+ - Components: ${contextAnalysis.components.length} found (${contextAnalysis.components.join(", ")})
194
+ - User Roles: ${contextAnalysis.userRoles.join(", ")}
195
+ - Tech Stack: ${contextAnalysis.techStack.join(", ")}
196
+ - Context Completeness: ${contextAnalysis.contextCompleteness}/8 files
197
+
198
+ USER PREFERENCES:
199
+ ${userPreferences ? JSON.stringify(userPreferences, null, 2) : "Not specified"}
200
+
201
+ PROJECT DOCUMENTATION:
202
+ PRD: ${contextAnalysis.rawContext.prd?.substring(0, 500) || "Not available"}
203
+ Features: ${contextAnalysis.rawContext.features?.substring(0, 300) || "Not available"}
204
+ User Flows: ${contextAnalysis.rawContext.userFlows?.substring(0, 300) || "Not available"}
205
+ Technical Specs: ${contextAnalysis.rawContext.technicalSpecs?.substring(0, 300) || "Not available"}
206
+
207
+ Provide strategic analysis as JSON:
208
+ {
209
+ "projectComplexity": "Brief assessment of project complexity (simple/medium/complex)",
210
+ "riskFactors": ["array of potential risks and challenges"],
211
+ "successFactors": ["array of key success factors"],
212
+ "customRecommendations": ["array of specific recommendations for this project"],
213
+ "optimalStrategy": "Recommended build strategy (foundation-first/vertical-slice/horizontal-slice/iterative-scaffolding/hybrid)",
214
+ "reasoning": "Detailed explanation of why this strategy is optimal"
215
+ }`;
216
+ try {
217
+ const response = await this.aiClient.generateText(prompt, {
218
+ temperature: 0.3,
219
+ maxTokens: 2000,
220
+ });
221
+ return JSON.parse(response.text || "{}");
222
+ }
223
+ catch (error) {
224
+ console.warn("LLM insights generation failed, using fallback");
225
+ return {
226
+ projectComplexity: "medium",
227
+ riskFactors: [
228
+ "Scope creep",
229
+ "Technical complexity",
230
+ "Timeline pressure",
231
+ ],
232
+ successFactors: [
233
+ "Clear requirements",
234
+ "Good team communication",
235
+ "Iterative development",
236
+ ],
237
+ customRecommendations: [
238
+ "Start with core features",
239
+ "Implement proper testing",
240
+ "Focus on user experience",
241
+ ],
242
+ optimalStrategy: "vertical-slice",
243
+ reasoning: "Vertical slice approach recommended for balanced development",
244
+ };
245
+ }
246
+ }
247
+ async generateRecommendations(contextAnalysis, llmInsights, userPreferences) {
248
+ const prompt = `You are an expert development strategist. Based on the project analysis, recommend the best build strategies.
249
+
250
+ PROJECT ANALYSIS:
251
+ ${JSON.stringify(contextAnalysis, null, 2)}
252
+
253
+ LLM INSIGHTS:
254
+ ${JSON.stringify(llmInsights, null, 2)}
255
+
256
+ USER PREFERENCES:
257
+ ${userPreferences ? JSON.stringify(userPreferences, null, 2) : "Not specified"}
258
+
259
+ Generate recommendations as JSON:
260
+ {
261
+ "recommended": [
262
+ {
263
+ "id": "strategy-id",
264
+ "name": "Strategy Name",
265
+ "description": "Brief description",
266
+ "icon": "🎯",
267
+ "complexity": "low/medium/high",
268
+ "timeToFirstDemo": "1-2 weeks",
269
+ "bestFor": ["array of use cases"],
270
+ "pros": ["array of advantages"],
271
+ "cons": ["array of disadvantages"],
272
+ "confidence": 0.9
273
+ }
274
+ ],
275
+ "reasoning": "Detailed explanation of recommendations",
276
+ "alternatives": [
277
+ {
278
+ "id": "alternative-id",
279
+ "name": "Alternative Name",
280
+ "description": "Brief description",
281
+ "icon": "🔄",
282
+ "whyNotPrimary": "Why this wasn't the top choice"
283
+ }
284
+ ]
285
+ }`;
286
+ try {
287
+ const response = await this.aiClient.generateText(prompt, {
288
+ temperature: 0.2,
289
+ maxTokens: 2500,
290
+ });
291
+ const recommendations = JSON.parse(response.text || "{}");
292
+ return {
293
+ strategy: recommendations.recommended?.[0] || this.getDefaultStrategy(),
294
+ recommendations,
295
+ contextAnalysis,
296
+ llmInsights,
297
+ };
298
+ }
299
+ catch (error) {
300
+ console.warn("LLM recommendations failed, using fallback");
301
+ return {
302
+ strategy: this.getDefaultStrategy(),
303
+ recommendations: {
304
+ recommended: [this.getDefaultStrategy()],
305
+ reasoning: "Fallback strategy based on project analysis",
306
+ alternatives: [],
307
+ },
308
+ contextAnalysis,
309
+ llmInsights,
310
+ };
311
+ }
312
+ }
313
+ async generateBuildPlan(contextAnalysis, llmInsights, strategyId) {
314
+ const strategy = strategyId || llmInsights.optimalStrategy || "vertical-slice";
315
+ const prompt = `You are an expert project planner. Create a detailed build plan for this project using the ${strategy} strategy.
316
+
317
+ PROJECT ANALYSIS:
318
+ ${JSON.stringify(contextAnalysis, null, 2)}
319
+
320
+ LLM INSIGHTS:
321
+ ${JSON.stringify(llmInsights, null, 2)}
322
+
323
+ STRATEGY: ${strategy}
324
+
325
+ Generate a detailed build plan as JSON:
326
+ {
327
+ "strategy": {
328
+ "id": "${strategy}",
329
+ "name": "Strategy Name",
330
+ "description": "Strategy description",
331
+ "icon": "🎯",
332
+ "complexity": "medium",
333
+ "timeToFirstDemo": "2-3 weeks",
334
+ "bestFor": ["use cases"],
335
+ "pros": ["advantages"],
336
+ "cons": ["disadvantages"],
337
+ "phases": [
338
+ {
339
+ "phase": 1,
340
+ "name": "Phase Name",
341
+ "duration": "1-2 weeks",
342
+ "tasks": ["task1", "task2", "task3"],
343
+ "deliverables": ["deliverable1", "deliverable2"],
344
+ "successCriteria": "Clear success criteria"
345
+ }
346
+ ]
347
+ },
348
+ "plan": [
349
+ {
350
+ "phase": 1,
351
+ "name": "Phase Name",
352
+ "duration": "1-2 weeks",
353
+ "estimatedEffort": "1-2 weeks (adjusted for complexity)",
354
+ "tasks": ["task1", "task2"],
355
+ "deliverables": ["deliverable1"],
356
+ "successCriteria": "Success criteria"
357
+ }
358
+ ],
359
+ "totalDuration": "4-6 weeks",
360
+ "milestones": ["Phase 1: Foundation", "Phase 2: Core Features", "Phase 3: Polish"]
361
+ }`;
362
+ try {
363
+ const response = await this.aiClient.generateText(prompt, {
364
+ temperature: 0.2,
365
+ maxTokens: 3000,
366
+ });
367
+ const plan = JSON.parse(response.text || "{}");
368
+ return {
369
+ strategy: plan.strategy || this.getDefaultStrategy(),
370
+ plan,
371
+ contextAnalysis,
372
+ llmInsights,
373
+ };
374
+ }
375
+ catch (error) {
376
+ console.warn("LLM plan generation failed, using fallback");
377
+ return {
378
+ strategy: this.getDefaultStrategy(),
379
+ plan: {
380
+ strategy: this.getDefaultStrategy(),
381
+ plan: [this.getDefaultPhase()],
382
+ totalDuration: "4-6 weeks",
383
+ milestones: [
384
+ "Phase 1: Foundation",
385
+ "Phase 2: Features",
386
+ "Phase 3: Polish",
387
+ ],
388
+ },
389
+ contextAnalysis,
390
+ llmInsights,
391
+ };
392
+ }
393
+ }
394
+ async generateTaskList(contextAnalysis, llmInsights, strategyId, phaseNumber) {
395
+ const strategy = strategyId || llmInsights.optimalStrategy || "vertical-slice";
396
+ const phase = phaseNumber || 1;
397
+ const prompt = `You are an expert task planner. Generate detailed tasks for Phase ${phase} of the ${strategy} strategy.
398
+
399
+ PROJECT ANALYSIS:
400
+ ${JSON.stringify(contextAnalysis, null, 2)}
401
+
402
+ LLM INSIGHTS:
403
+ ${JSON.stringify(llmInsights, null, 2)}
404
+
405
+ STRATEGY: ${strategy}
406
+ PHASE: ${phase}
407
+
408
+ Generate detailed tasks as JSON:
409
+ {
410
+ "phase": {
411
+ "phase": ${phase},
412
+ "name": "Phase Name",
413
+ "duration": "1-2 weeks",
414
+ "tasks": ["task1", "task2", "task3"],
415
+ "deliverables": ["deliverable1", "deliverable2"],
416
+ "successCriteria": "Clear success criteria"
417
+ },
418
+ "tasks": [
419
+ {
420
+ "id": "task-1",
421
+ "title": "Task Title",
422
+ "description": "Detailed task description",
423
+ "priority": "high/medium/low",
424
+ "estimatedTime": "1-2 days",
425
+ "dependencies": ["dependency1"],
426
+ "deliverables": ["deliverable1", "deliverable2"]
427
+ }
428
+ ]
429
+ }`;
430
+ try {
431
+ const response = await this.aiClient.generateText(prompt, {
432
+ temperature: 0.2,
433
+ maxTokens: 2000,
434
+ });
435
+ const taskList = JSON.parse(response.text || "{}");
436
+ return {
437
+ strategy: this.getDefaultStrategy(),
438
+ taskList,
439
+ contextAnalysis,
440
+ llmInsights,
441
+ };
442
+ }
443
+ catch (error) {
444
+ console.warn("LLM task generation failed, using fallback");
445
+ return {
446
+ strategy: this.getDefaultStrategy(),
447
+ taskList: {
448
+ phase: this.getDefaultPhase(),
449
+ tasks: [this.getDefaultTask()],
450
+ },
451
+ contextAnalysis,
452
+ llmInsights,
453
+ };
454
+ }
455
+ }
456
+ async generateComparison(contextAnalysis, llmInsights) {
457
+ const prompt = `You are an expert development strategist. Compare all build strategies for this project.
458
+
459
+ PROJECT ANALYSIS:
460
+ ${JSON.stringify(contextAnalysis, null, 2)}
461
+
462
+ LLM INSIGHTS:
463
+ ${JSON.stringify(llmInsights, null, 2)}
464
+
465
+ Compare these strategies: foundation-first, vertical-slice, horizontal-slice, iterative-scaffolding, hybrid
466
+
467
+ Generate comparison as JSON:
468
+ {
469
+ "strategies": [
470
+ {
471
+ "id": "foundation-first",
472
+ "name": "Foundation First",
473
+ "description": "Build core infrastructure first",
474
+ "icon": "🏗️",
475
+ "complexity": "medium",
476
+ "timeToFirstDemo": "3-4 weeks",
477
+ "bestFor": ["complex projects", "team development"],
478
+ "pros": ["solid foundation", "scalable"],
479
+ "cons": ["slow initial progress"],
480
+ "score": 8.5
481
+ }
482
+ ],
483
+ "recommendation": "vertical-slice",
484
+ "reasoning": "Best fit for this project based on analysis"
485
+ }`;
486
+ try {
487
+ const response = await this.aiClient.generateText(prompt, {
488
+ temperature: 0.2,
489
+ maxTokens: 2500,
490
+ });
491
+ const comparison = JSON.parse(response.text || "{}");
492
+ return {
493
+ strategy: comparison.strategies?.[0] || this.getDefaultStrategy(),
494
+ recommendations: comparison,
495
+ contextAnalysis,
496
+ llmInsights,
497
+ };
498
+ }
499
+ catch (error) {
500
+ console.warn("LLM comparison failed, using fallback");
501
+ return {
502
+ strategy: this.getDefaultStrategy(),
503
+ recommendations: {
504
+ recommended: [this.getDefaultStrategy()],
505
+ reasoning: "Fallback comparison based on project analysis",
506
+ alternatives: [],
507
+ },
508
+ contextAnalysis,
509
+ llmInsights,
510
+ };
511
+ }
512
+ }
513
+ getDefaultStrategy() {
514
+ return {
515
+ id: "vertical-slice",
516
+ name: "Vertical Slice (User Journey)",
517
+ description: "Build complete user journeys end-to-end",
518
+ icon: "🎯",
519
+ complexity: "medium",
520
+ timeToFirstDemo: "2-3 weeks",
521
+ bestFor: ["user-focused apps", "quick demos"],
522
+ pros: ["Fast user value", "End-to-end testing"],
523
+ cons: ["May duplicate work"],
524
+ phases: [this.getDefaultPhase()],
525
+ };
526
+ }
527
+ getDefaultPhase() {
528
+ return {
529
+ phase: 1,
530
+ name: "Foundation Setup",
531
+ duration: "1-2 weeks",
532
+ tasks: ["Project setup", "Authentication", "Core components"],
533
+ deliverables: ["Working foundation", "Basic auth", "Core UI"],
534
+ successCriteria: "Foundation is solid and ready for features",
535
+ };
536
+ }
537
+ getDefaultTask() {
538
+ return {
539
+ id: "task-1",
540
+ title: "Project Setup",
541
+ description: "Set up the core project structure with Next.js, TypeScript, and Tailwind CSS",
542
+ priority: "high",
543
+ estimatedTime: "1-2 days",
544
+ dependencies: [],
545
+ deliverables: [
546
+ "Working Next.js app",
547
+ "TypeScript config",
548
+ "Tailwind setup",
549
+ ],
550
+ };
551
+ }
552
+ }
553
+ exports.BuildStrategyAgent = BuildStrategyAgent;
554
+ //# sourceMappingURL=BuildStrategyAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildStrategyAgent.js","sourceRoot":"","sources":["../../../src/agents/implementations/BuildStrategyAgent.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -37,6 +37,7 @@ const setup_instantdb_1 = require("./commands/setup-instantdb");
37
37
  const setup_mcp_1 = require("./commands/setup-mcp");
38
38
  const generate_context_files_1 = require("./commands/generate-context-files");
39
39
  const compile_prd_1 = require("./commands/compile-prd");
40
+ const build_strategy_1 = require("./commands/build-strategy");
40
41
  // Import sub-agent system
41
42
  const SubAgentOrchestrator_1 = require("./agents/orchestrator/SubAgentOrchestrator");
42
43
  const CodeGenSubAgent_1 = require("./agents/implementations/CodeGenSubAgent");
@@ -592,6 +593,8 @@ program
592
593
  });
593
594
  // Add predict command
594
595
  program.addCommand(predict_1.predict);
596
+ // Add build strategy command
597
+ program.addCommand(build_strategy_1.buildStrategyCommand);
595
598
  // Build App command (agent-driven workflow with looping)
596
599
  program
597
600
  .command("build-app")