mycontext-cli 2.0.2 → 2.0.4

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 (69) hide show
  1. package/README.md +426 -103
  2. package/dist/README.md +426 -103
  3. package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts.map +1 -1
  4. package/dist/agents/implementations/ClaudeAgentWorkflow.js +75 -4
  5. package/dist/agents/implementations/ClaudeAgentWorkflow.js.map +1 -1
  6. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  7. package/dist/agents/implementations/CodeGenSubAgent.js +69 -0
  8. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  9. package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -1
  10. package/dist/agents/implementations/PromptConstructorAgent.js +23 -0
  11. package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -1
  12. package/dist/agents/interfaces/SubAgent.d.ts +2 -0
  13. package/dist/agents/interfaces/SubAgent.d.ts.map +1 -1
  14. package/dist/cli.js +13 -40
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/generate-components.d.ts +0 -5
  17. package/dist/commands/generate-components.d.ts.map +1 -1
  18. package/dist/commands/generate-components.js +0 -101
  19. package/dist/commands/generate-components.js.map +1 -1
  20. package/dist/commands/health-check.d.ts +28 -0
  21. package/dist/commands/health-check.d.ts.map +1 -0
  22. package/dist/commands/health-check.js +271 -0
  23. package/dist/commands/health-check.js.map +1 -0
  24. package/dist/commands/init.d.ts.map +1 -1
  25. package/dist/commands/init.js +2 -6
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/config/build-strategies.json +173 -22
  28. package/dist/package.json +2 -2
  29. package/dist/utils/NextJSProjectGenerator.d.ts +70 -0
  30. package/dist/utils/NextJSProjectGenerator.d.ts.map +1 -0
  31. package/dist/utils/NextJSProjectGenerator.js +811 -0
  32. package/dist/utils/NextJSProjectGenerator.js.map +1 -0
  33. package/dist/utils/NextJSProjectValidator.d.ts +103 -0
  34. package/dist/utils/NextJSProjectValidator.d.ts.map +1 -0
  35. package/dist/utils/NextJSProjectValidator.js +759 -0
  36. package/dist/utils/NextJSProjectValidator.js.map +1 -0
  37. package/dist/utils/PreCommandValidator.d.ts +77 -0
  38. package/dist/utils/PreCommandValidator.d.ts.map +1 -0
  39. package/dist/utils/PreCommandValidator.js +251 -0
  40. package/dist/utils/PreCommandValidator.js.map +1 -0
  41. package/dist/utils/ProjectHealthMonitor.d.ts +131 -0
  42. package/dist/utils/ProjectHealthMonitor.d.ts.map +1 -0
  43. package/dist/utils/ProjectHealthMonitor.js +454 -0
  44. package/dist/utils/ProjectHealthMonitor.js.map +1 -0
  45. package/dist/utils/ProjectInitializationSafeguards.d.ts +81 -0
  46. package/dist/utils/ProjectInitializationSafeguards.d.ts.map +1 -0
  47. package/dist/utils/ProjectInitializationSafeguards.js +620 -0
  48. package/dist/utils/ProjectInitializationSafeguards.js.map +1 -0
  49. package/dist/utils/ProjectStructureRepair.d.ts +110 -0
  50. package/dist/utils/ProjectStructureRepair.d.ts.map +1 -0
  51. package/dist/utils/ProjectStructureRepair.js +785 -0
  52. package/dist/utils/ProjectStructureRepair.js.map +1 -0
  53. package/dist/utils/ProjectStructureValidator.d.ts +128 -0
  54. package/dist/utils/ProjectStructureValidator.d.ts.map +1 -0
  55. package/dist/utils/ProjectStructureValidator.js +662 -0
  56. package/dist/utils/ProjectStructureValidator.js.map +1 -0
  57. package/dist/utils/agentDefinitions.d.ts +5 -0
  58. package/dist/utils/agentDefinitions.d.ts.map +1 -1
  59. package/dist/utils/agentDefinitions.js +99 -1
  60. package/dist/utils/agentDefinitions.js.map +1 -1
  61. package/dist/utils/mcpTools.d.ts +189 -0
  62. package/dist/utils/mcpTools.d.ts.map +1 -1
  63. package/dist/utils/mcpTools.js +462 -1
  64. package/dist/utils/mcpTools.js.map +1 -1
  65. package/package.json +2 -2
  66. package/dist/commands/core.d.ts +0 -24
  67. package/dist/commands/core.d.ts.map +0 -1
  68. package/dist/commands/core.js +0 -410
  69. package/dist/commands/core.js.map +0 -1
@@ -0,0 +1,454 @@
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.ProjectHealthMonitor = void 0;
40
+ const fs = __importStar(require("fs-extra"));
41
+ const path = __importStar(require("path"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const ProjectStructureValidator_1 = require("./ProjectStructureValidator");
44
+ class ProjectHealthMonitor {
45
+ constructor(projectRoot = process.cwd()) {
46
+ this.healthHistory = [];
47
+ this.alerts = [];
48
+ this.monitoringEnabled = true;
49
+ this.alertThresholds = {
50
+ critical: 0.3, // Below 30% health
51
+ warning: 0.6, // Below 60% health
52
+ info: 0.8 // Below 80% health
53
+ };
54
+ this.projectRoot = projectRoot;
55
+ this.validator = new ProjectStructureValidator_1.ProjectStructureValidator(projectRoot);
56
+ this.loadHealthHistory();
57
+ this.loadAlerts();
58
+ }
59
+ /**
60
+ * Perform comprehensive health check
61
+ */
62
+ async performHealthCheck() {
63
+ console.log(chalk_1.default.blue("🏥 Performing comprehensive health check..."));
64
+ const report = await this.validator.validate();
65
+ const metrics = await this.calculateHealthMetrics(report);
66
+ // Store metrics
67
+ this.healthHistory.push(metrics);
68
+ this.trimHealthHistory();
69
+ // Check for alerts
70
+ await this.checkForAlerts(metrics);
71
+ // Save data
72
+ await this.saveHealthHistory();
73
+ await this.saveAlerts();
74
+ return metrics;
75
+ }
76
+ /**
77
+ * Calculate health metrics from validation report
78
+ */
79
+ async calculateHealthMetrics(report) {
80
+ const timestamp = new Date().toISOString();
81
+ // Calculate structure health (based on critical and high issues)
82
+ const structureIssues = report.issues.filter(issue => issue.severity === "critical" || issue.severity === "high");
83
+ const structureHealth = Math.max(0, 100 - (structureIssues.length * 20));
84
+ // Calculate dependency health
85
+ const dependencyIssues = report.issues.filter(issue => issue.message.includes("package.json") ||
86
+ issue.message.includes("node_modules") ||
87
+ issue.message.includes("lock file") ||
88
+ issue.message.includes("dependencies"));
89
+ const dependencyHealth = Math.max(0, 100 - (dependencyIssues.length * 15));
90
+ // Calculate configuration health
91
+ const configIssues = report.issues.filter(issue => issue.message.includes("configuration") ||
92
+ issue.message.includes("tsconfig") ||
93
+ issue.message.includes("build config"));
94
+ const configurationHealth = Math.max(0, 100 - (configIssues.length * 10));
95
+ // Calculate overall health
96
+ const overallHealth = Math.round((structureHealth + dependencyHealth + configurationHealth) / 3);
97
+ // Count issues by severity
98
+ const issues = {
99
+ critical: report.issues.filter(issue => issue.severity === "critical").length,
100
+ high: report.issues.filter(issue => issue.severity === "high").length,
101
+ medium: report.issues.filter(issue => issue.severity === "medium").length,
102
+ low: report.issues.filter(issue => issue.severity === "low").length
103
+ };
104
+ // Get trends from last 10 measurements
105
+ const trends = this.calculateTrends();
106
+ return {
107
+ timestamp,
108
+ projectPath: this.projectRoot,
109
+ structureHealth,
110
+ dependencyHealth,
111
+ configurationHealth,
112
+ overallHealth,
113
+ issues,
114
+ trends
115
+ };
116
+ }
117
+ /**
118
+ * Calculate health trends
119
+ */
120
+ calculateTrends() {
121
+ const recent = this.healthHistory.slice(-10);
122
+ return {
123
+ structureHealth: recent.map(m => m.structureHealth),
124
+ dependencyHealth: recent.map(m => m.dependencyHealth),
125
+ configurationHealth: recent.map(m => m.configurationHealth),
126
+ overallHealth: recent.map(m => m.overallHealth)
127
+ };
128
+ }
129
+ /**
130
+ * Check for health alerts
131
+ */
132
+ async checkForAlerts(metrics) {
133
+ const alerts = [];
134
+ // Check overall health
135
+ if (metrics.overallHealth < this.alertThresholds.critical * 100) {
136
+ alerts.push({
137
+ id: `critical-health-${Date.now()}`,
138
+ type: "critical",
139
+ message: `Critical health alert: Overall health is ${metrics.overallHealth}%`,
140
+ timestamp: metrics.timestamp,
141
+ resolved: false,
142
+ autoResolved: false
143
+ });
144
+ }
145
+ else if (metrics.overallHealth < this.alertThresholds.warning * 100) {
146
+ alerts.push({
147
+ id: `warning-health-${Date.now()}`,
148
+ type: "warning",
149
+ message: `Warning: Overall health is ${metrics.overallHealth}%`,
150
+ timestamp: metrics.timestamp,
151
+ resolved: false,
152
+ autoResolved: false
153
+ });
154
+ }
155
+ // Check structure health
156
+ if (metrics.structureHealth < this.alertThresholds.critical * 100) {
157
+ alerts.push({
158
+ id: `critical-structure-${Date.now()}`,
159
+ type: "critical",
160
+ message: `Critical structure alert: Structure health is ${metrics.structureHealth}%`,
161
+ timestamp: metrics.timestamp,
162
+ resolved: false,
163
+ autoResolved: false
164
+ });
165
+ }
166
+ // Check dependency health
167
+ if (metrics.dependencyHealth < this.alertThresholds.warning * 100) {
168
+ alerts.push({
169
+ id: `warning-dependency-${Date.now()}`,
170
+ type: "warning",
171
+ message: `Dependency warning: Dependency health is ${metrics.dependencyHealth}%`,
172
+ timestamp: metrics.timestamp,
173
+ resolved: false,
174
+ autoResolved: false
175
+ });
176
+ }
177
+ // Check for new critical issues
178
+ if (metrics.issues.critical > 0) {
179
+ alerts.push({
180
+ id: `critical-issues-${Date.now()}`,
181
+ type: "critical",
182
+ message: `${metrics.issues.critical} critical issues detected`,
183
+ timestamp: metrics.timestamp,
184
+ resolved: false,
185
+ autoResolved: false
186
+ });
187
+ }
188
+ // Add new alerts
189
+ this.alerts.push(...alerts);
190
+ // Auto-resolve old alerts if health improved
191
+ await this.autoResolveAlerts(metrics);
192
+ }
193
+ /**
194
+ * Auto-resolve alerts when health improves
195
+ */
196
+ async autoResolveAlerts(metrics) {
197
+ const unresolvedAlerts = this.alerts.filter(alert => !alert.resolved);
198
+ for (const alert of unresolvedAlerts) {
199
+ let shouldResolve = false;
200
+ switch (alert.type) {
201
+ case "critical":
202
+ if (metrics.overallHealth >= this.alertThresholds.warning * 100) {
203
+ shouldResolve = true;
204
+ }
205
+ break;
206
+ case "warning":
207
+ if (metrics.overallHealth >= this.alertThresholds.info * 100) {
208
+ shouldResolve = true;
209
+ }
210
+ break;
211
+ }
212
+ if (shouldResolve) {
213
+ alert.resolved = true;
214
+ alert.autoResolved = true;
215
+ console.log(chalk_1.default.green(`✅ Auto-resolved alert: ${alert.message}`));
216
+ }
217
+ }
218
+ }
219
+ /**
220
+ * Get health dashboard data
221
+ */
222
+ async getHealthDashboard() {
223
+ const current = await this.performHealthCheck();
224
+ const trends = this.calculateTrends();
225
+ const activeAlerts = this.alerts.filter(alert => !alert.resolved);
226
+ const recommendations = this.generateRecommendations(current);
227
+ return {
228
+ current,
229
+ trends,
230
+ alerts: activeAlerts,
231
+ recommendations
232
+ };
233
+ }
234
+ /**
235
+ * Generate health recommendations
236
+ */
237
+ generateRecommendations(metrics) {
238
+ const recommendations = [];
239
+ if (metrics.structureHealth < 80) {
240
+ recommendations.push("Run 'mycontext health-check --fix' to resolve structure issues");
241
+ }
242
+ if (metrics.dependencyHealth < 80) {
243
+ recommendations.push("Check for dependency conflicts and run 'pnpm install'");
244
+ }
245
+ if (metrics.configurationHealth < 80) {
246
+ recommendations.push("Review and update project configuration files");
247
+ }
248
+ if (metrics.issues.critical > 0) {
249
+ recommendations.push("Address critical issues immediately");
250
+ }
251
+ if (metrics.issues.high > 0) {
252
+ recommendations.push("Plan to address high-priority issues soon");
253
+ }
254
+ if (metrics.overallHealth < 60) {
255
+ recommendations.push("Consider running 'mycontext health-check --fix' to auto-resolve issues");
256
+ }
257
+ return recommendations;
258
+ }
259
+ /**
260
+ * Display health dashboard
261
+ */
262
+ async displayHealthDashboard() {
263
+ const dashboard = await this.getHealthDashboard();
264
+ console.log(chalk_1.default.blue.bold("🏥 MyContext Project Health Dashboard"));
265
+ console.log(chalk_1.default.blue("=====================================\n"));
266
+ // Current health status
267
+ console.log(chalk_1.default.blue("📊 Current Health Status:"));
268
+ console.log(` Overall Health: ${this.getHealthColor(dashboard.current.overallHealth)}${dashboard.current.overallHealth}%`);
269
+ console.log(` Structure Health: ${this.getHealthColor(dashboard.current.structureHealth)}${dashboard.current.structureHealth}%`);
270
+ console.log(` Dependency Health: ${this.getHealthColor(dashboard.current.dependencyHealth)}${dashboard.current.dependencyHealth}%`);
271
+ console.log(` Configuration Health: ${this.getHealthColor(dashboard.current.configurationHealth)}${dashboard.current.configurationHealth}%\n`);
272
+ // Issues breakdown
273
+ console.log(chalk_1.default.blue("🚨 Issues Breakdown:"));
274
+ console.log(` Critical: ${chalk_1.default.red(dashboard.current.issues.critical)}`);
275
+ console.log(` High: ${chalk_1.default.yellow(dashboard.current.issues.high)}`);
276
+ console.log(` Medium: ${chalk_1.default.blue(dashboard.current.issues.medium)}`);
277
+ console.log(` Low: ${chalk_1.default.gray(dashboard.current.issues.low)}\n`);
278
+ // Active alerts
279
+ if (dashboard.alerts.length > 0) {
280
+ console.log(chalk_1.default.red("🚨 Active Alerts:"));
281
+ dashboard.alerts.forEach(alert => {
282
+ const color = alert.type === "critical" ? chalk_1.default.red :
283
+ alert.type === "warning" ? chalk_1.default.yellow : chalk_1.default.blue;
284
+ console.log(` ${color(alert.type.toUpperCase())}: ${alert.message}`);
285
+ });
286
+ console.log();
287
+ }
288
+ // Trends
289
+ if (dashboard.trends.overallHealth.length > 1) {
290
+ console.log(chalk_1.default.blue("📈 Health Trends (Last 10 Checks):"));
291
+ const trend = this.calculateTrendDirection(dashboard.trends.overallHealth);
292
+ const trendColor = trend > 0 ? chalk_1.default.green : trend < 0 ? chalk_1.default.red : chalk_1.default.gray;
293
+ const trendSymbol = trend > 0 ? "📈" : trend < 0 ? "📉" : "➡️";
294
+ console.log(` Overall Health: ${trendColor(trendSymbol)} ${trend > 0 ? "+" : ""}${trend.toFixed(1)}%`);
295
+ console.log();
296
+ }
297
+ // Recommendations
298
+ if (dashboard.recommendations.length > 0) {
299
+ console.log(chalk_1.default.blue("💡 Recommendations:"));
300
+ dashboard.recommendations.forEach(rec => {
301
+ console.log(` • ${rec}`);
302
+ });
303
+ console.log();
304
+ }
305
+ // Health grade
306
+ const grade = this.calculateHealthGrade(dashboard.current.overallHealth);
307
+ console.log(chalk_1.default.blue(`🏆 Health Grade: ${this.getGradeColor(grade)}${grade}`));
308
+ }
309
+ /**
310
+ * Get health color based on percentage
311
+ */
312
+ getHealthColor(percentage) {
313
+ if (percentage >= 80)
314
+ return chalk_1.default.green(`${percentage}%`);
315
+ if (percentage >= 60)
316
+ return chalk_1.default.yellow(`${percentage}%`);
317
+ if (percentage >= 40)
318
+ return chalk_1.default.red(`${percentage}%`);
319
+ return chalk_1.default.red.bold(`${percentage}%`);
320
+ }
321
+ /**
322
+ * Get grade color
323
+ */
324
+ getGradeColor(grade) {
325
+ switch (grade) {
326
+ case "A": return chalk_1.default.green("A");
327
+ case "B": return chalk_1.default.yellow("B");
328
+ case "C": return chalk_1.default.yellow("C");
329
+ case "D": return chalk_1.default.red("D");
330
+ case "F": return chalk_1.default.red.bold("F");
331
+ default: return chalk_1.default.gray("?");
332
+ }
333
+ }
334
+ /**
335
+ * Calculate health grade
336
+ */
337
+ calculateHealthGrade(percentage) {
338
+ if (percentage >= 90)
339
+ return "A";
340
+ if (percentage >= 80)
341
+ return "B";
342
+ if (percentage >= 70)
343
+ return "C";
344
+ if (percentage >= 60)
345
+ return "D";
346
+ return "F";
347
+ }
348
+ /**
349
+ * Calculate trend direction
350
+ */
351
+ calculateTrendDirection(values) {
352
+ if (values.length < 2)
353
+ return 0;
354
+ const first = values[0];
355
+ const last = values[values.length - 1];
356
+ return last - first;
357
+ }
358
+ /**
359
+ * Enable/disable monitoring
360
+ */
361
+ setMonitoringEnabled(enabled) {
362
+ this.monitoringEnabled = enabled;
363
+ }
364
+ /**
365
+ * Set alert thresholds
366
+ */
367
+ setAlertThresholds(thresholds) {
368
+ this.alertThresholds = { ...this.alertThresholds, ...thresholds };
369
+ }
370
+ /**
371
+ * Get health history
372
+ */
373
+ getHealthHistory() {
374
+ return [...this.healthHistory];
375
+ }
376
+ /**
377
+ * Get alerts
378
+ */
379
+ getAlerts() {
380
+ return [...this.alerts];
381
+ }
382
+ /**
383
+ * Clear resolved alerts
384
+ */
385
+ clearResolvedAlerts() {
386
+ this.alerts = this.alerts.filter(alert => !alert.resolved);
387
+ }
388
+ /**
389
+ * Load health history from file
390
+ */
391
+ async loadHealthHistory() {
392
+ try {
393
+ const historyPath = path.join(this.projectRoot, ".mycontext", "health-history.json");
394
+ if (await fs.pathExists(historyPath)) {
395
+ const data = await fs.readJson(historyPath);
396
+ this.healthHistory = data.history || [];
397
+ }
398
+ }
399
+ catch (error) {
400
+ console.log(chalk_1.default.yellow("⚠️ Could not load health history"));
401
+ }
402
+ }
403
+ /**
404
+ * Save health history to file
405
+ */
406
+ async saveHealthHistory() {
407
+ try {
408
+ const historyPath = path.join(this.projectRoot, ".mycontext", "health-history.json");
409
+ await fs.ensureDir(path.dirname(historyPath));
410
+ await fs.writeJson(historyPath, { history: this.healthHistory }, { spaces: 2 });
411
+ }
412
+ catch (error) {
413
+ console.log(chalk_1.default.yellow("⚠️ Could not save health history"));
414
+ }
415
+ }
416
+ /**
417
+ * Load alerts from file
418
+ */
419
+ async loadAlerts() {
420
+ try {
421
+ const alertsPath = path.join(this.projectRoot, ".mycontext", "health-alerts.json");
422
+ if (await fs.pathExists(alertsPath)) {
423
+ const data = await fs.readJson(alertsPath);
424
+ this.alerts = data.alerts || [];
425
+ }
426
+ }
427
+ catch (error) {
428
+ console.log(chalk_1.default.yellow("⚠️ Could not load health alerts"));
429
+ }
430
+ }
431
+ /**
432
+ * Save alerts to file
433
+ */
434
+ async saveAlerts() {
435
+ try {
436
+ const alertsPath = path.join(this.projectRoot, ".mycontext", "health-alerts.json");
437
+ await fs.ensureDir(path.dirname(alertsPath));
438
+ await fs.writeJson(alertsPath, { alerts: this.alerts }, { spaces: 2 });
439
+ }
440
+ catch (error) {
441
+ console.log(chalk_1.default.yellow("⚠️ Could not save health alerts"));
442
+ }
443
+ }
444
+ /**
445
+ * Trim health history to keep only last 100 entries
446
+ */
447
+ trimHealthHistory() {
448
+ if (this.healthHistory.length > 100) {
449
+ this.healthHistory = this.healthHistory.slice(-100);
450
+ }
451
+ }
452
+ }
453
+ exports.ProjectHealthMonitor = ProjectHealthMonitor;
454
+ //# sourceMappingURL=ProjectHealthMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectHealthMonitor.js","sourceRoot":"","sources":["../../src/utils/ProjectHealthMonitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ export interface ProjectInitializationOptions {
2
+ projectName: string;
3
+ projectPath: string;
4
+ framework: string;
5
+ withShadcn: boolean;
6
+ scaffoldNext: boolean;
7
+ skipShadcn: boolean;
8
+ force: boolean;
9
+ }
10
+ export interface InitializationResult {
11
+ success: boolean;
12
+ warnings: string[];
13
+ errors: string[];
14
+ projectPath: string;
15
+ structureValid: boolean;
16
+ }
17
+ export declare class ProjectInitializationSafeguards {
18
+ private validator;
19
+ constructor();
20
+ /**
21
+ * Comprehensive project initialization with safeguards
22
+ */
23
+ initializeProject(options: ProjectInitializationOptions): Promise<InitializationResult>;
24
+ /**
25
+ * Validate target location for project creation
26
+ */
27
+ private validateTargetLocation;
28
+ /**
29
+ * Check for existing project conflicts
30
+ */
31
+ private checkExistingProjectConflicts;
32
+ /**
33
+ * Create project structure safely
34
+ */
35
+ private createProjectStructure;
36
+ /**
37
+ * Initialize package.json with safeguards
38
+ */
39
+ private initializePackageJson;
40
+ /**
41
+ * Set up framework-specific configuration
42
+ */
43
+ private setupFrameworkConfiguration;
44
+ /**
45
+ * Set up Next.js configuration
46
+ */
47
+ private setupNextJSConfiguration;
48
+ /**
49
+ * Set up TypeScript configuration
50
+ */
51
+ private setupTypeScriptConfiguration;
52
+ /**
53
+ * Set up Tailwind CSS configuration
54
+ */
55
+ private setupTailwindConfiguration;
56
+ /**
57
+ * Initialize MyContext configuration
58
+ */
59
+ private initializeMyContextConfig;
60
+ /**
61
+ * Perform final validation
62
+ */
63
+ private performFinalValidation;
64
+ /**
65
+ * Generate package.json content
66
+ */
67
+ private generatePackageJson;
68
+ /**
69
+ * Generate .gitignore content
70
+ */
71
+ private generateGitignoreContent;
72
+ /**
73
+ * Check if a directory is safe to initialize a project in
74
+ */
75
+ isSafeToInitialize(projectPath: string): Promise<{
76
+ safe: boolean;
77
+ warnings: string[];
78
+ errors: string[];
79
+ }>;
80
+ }
81
+ //# sourceMappingURL=ProjectInitializationSafeguards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectInitializationSafeguards.d.ts","sourceRoot":"","sources":["../../src/utils/ProjectInitializationSafeguards.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,+BAA+B;IAC1C,OAAO,CAAC,SAAS,CAA4B;;IAM7C;;OAEG;IACG,iBAAiB,CACrB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,oBAAoB,CAAC;IAqDhC;;OAEG;YACW,sBAAsB;IAiDpC;;OAEG;YACW,6BAA6B;IAsD3C;;OAEG;YACW,sBAAsB;IAuCpC;;OAEG;YACW,qBAAqB;IAyBnC;;OAEG;YACW,2BAA2B;IAyBzC;;OAEG;YACW,wBAAwB;IA+BtC;;OAEG;YACW,4BAA4B;IA0C1C;;OAEG;YACW,0BAA0B;IAiDxC;;OAEG;YACW,yBAAyB;IAkDvC;;OAEG;YACW,sBAAsB;IAiCpC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4C3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA2GhC;;OAEG;IACG,kBAAkB,CACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAsDpE"}