mycontext-cli 2.0.0 → 2.0.2

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,338 @@
1
+ "use strict";
2
+ /**
3
+ * Build Validation System
4
+ *
5
+ * Ensures every component passes TypeScript, ESLint, and build checks.
6
+ * Follows "LLM as Compiler" philosophy - validates the "compiled output".
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.BuildValidator = void 0;
46
+ const child_process_1 = require("child_process");
47
+ const util_1 = require("util");
48
+ const chalk_1 = __importDefault(require("chalk"));
49
+ const fs = __importStar(require("fs-extra"));
50
+ const path_1 = __importDefault(require("path"));
51
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
52
+ class BuildValidator {
53
+ constructor(projectPath, verbose = false) {
54
+ this.projectPath = projectPath;
55
+ this.verbose = verbose;
56
+ }
57
+ /**
58
+ * Run TypeScript type checking
59
+ */
60
+ async validateTypeScript(filePath) {
61
+ console.log(chalk_1.default.blue('🔷 Running TypeScript check...'));
62
+ try {
63
+ const command = filePath
64
+ ? `npx tsc --noEmit ${filePath}`
65
+ : `npx tsc --noEmit`;
66
+ const { stdout, stderr } = await execAsync(command, {
67
+ cwd: this.projectPath,
68
+ timeout: 30000, // 30 second timeout
69
+ });
70
+ if (this.verbose) {
71
+ console.log(chalk_1.default.gray(stdout));
72
+ }
73
+ console.log(chalk_1.default.green('✅ TypeScript check passed'));
74
+ return { passed: true, errors: [], warnings: [] };
75
+ }
76
+ catch (error) {
77
+ const errors = this.parseTypeScriptErrors(error.stdout || error.stderr);
78
+ console.log(chalk_1.default.red(`❌ TypeScript check failed (${errors.length} errors)`));
79
+ if (this.verbose) {
80
+ errors.forEach(err => console.log(chalk_1.default.red(` ${err}`)));
81
+ }
82
+ return {
83
+ passed: false,
84
+ errors,
85
+ warnings: [],
86
+ output: error.stdout || error.stderr,
87
+ };
88
+ }
89
+ }
90
+ /**
91
+ * Run ESLint
92
+ */
93
+ async validateESLint(filePath) {
94
+ console.log(chalk_1.default.blue('📋 Running ESLint check...'));
95
+ try {
96
+ const command = filePath
97
+ ? `npx eslint ${filePath}`
98
+ : `npx eslint . --ext .ts,.tsx`;
99
+ const { stdout, stderr } = await execAsync(command, {
100
+ cwd: this.projectPath,
101
+ timeout: 30000,
102
+ });
103
+ if (this.verbose) {
104
+ console.log(chalk_1.default.gray(stdout));
105
+ }
106
+ console.log(chalk_1.default.green('✅ ESLint check passed'));
107
+ return { passed: true, errors: [], warnings: [] };
108
+ }
109
+ catch (error) {
110
+ const { errors, warnings } = this.parseESLintErrors(error.stdout || error.stderr);
111
+ if (errors.length > 0) {
112
+ console.log(chalk_1.default.red(`❌ ESLint check failed (${errors.length} errors, ${warnings.length} warnings)`));
113
+ }
114
+ else if (warnings.length > 0) {
115
+ console.log(chalk_1.default.yellow(`⚠️ ESLint check passed with warnings (${warnings.length})`));
116
+ }
117
+ if (this.verbose) {
118
+ errors.forEach(err => console.log(chalk_1.default.red(` ${err}`)));
119
+ warnings.forEach(warn => console.log(chalk_1.default.yellow(` ${warn}`)));
120
+ }
121
+ return {
122
+ passed: errors.length === 0,
123
+ errors,
124
+ warnings,
125
+ output: error.stdout || error.stderr,
126
+ };
127
+ }
128
+ }
129
+ /**
130
+ * Run full build
131
+ */
132
+ async validateBuild() {
133
+ console.log(chalk_1.default.blue('🔨 Running build check...'));
134
+ try {
135
+ const { stdout, stderr } = await execAsync('npm run build', {
136
+ cwd: this.projectPath,
137
+ timeout: 120000, // 2 minute timeout for build
138
+ });
139
+ if (this.verbose) {
140
+ console.log(chalk_1.default.gray(stdout));
141
+ }
142
+ console.log(chalk_1.default.green('✅ Build check passed'));
143
+ return { passed: true, errors: [], warnings: [] };
144
+ }
145
+ catch (error) {
146
+ const errors = this.parseBuildErrors(error.stdout || error.stderr);
147
+ console.log(chalk_1.default.red(`❌ Build check failed (${errors.length} errors)`));
148
+ if (this.verbose) {
149
+ errors.forEach(err => console.log(chalk_1.default.red(` ${err}`)));
150
+ }
151
+ return {
152
+ passed: false,
153
+ errors,
154
+ warnings: [],
155
+ output: error.stdout || error.stderr,
156
+ };
157
+ }
158
+ }
159
+ /**
160
+ * Run tests for a component
161
+ */
162
+ async validateTests(testPath) {
163
+ console.log(chalk_1.default.blue('🧪 Running tests...'));
164
+ try {
165
+ const command = testPath
166
+ ? `npm test -- ${testPath}`
167
+ : `npm test`;
168
+ const { stdout, stderr } = await execAsync(command, {
169
+ cwd: this.projectPath,
170
+ timeout: 60000, // 1 minute timeout
171
+ });
172
+ if (this.verbose) {
173
+ console.log(chalk_1.default.gray(stdout));
174
+ }
175
+ console.log(chalk_1.default.green('✅ Tests passed'));
176
+ return { passed: true, errors: [], warnings: [] };
177
+ }
178
+ catch (error) {
179
+ const errors = this.parseTestErrors(error.stdout || error.stderr);
180
+ console.log(chalk_1.default.red(`❌ Tests failed (${errors.length} failures)`));
181
+ if (this.verbose) {
182
+ errors.forEach(err => console.log(chalk_1.default.red(` ${err}`)));
183
+ }
184
+ return {
185
+ passed: false,
186
+ errors,
187
+ warnings: [],
188
+ output: error.stdout || error.stderr,
189
+ };
190
+ }
191
+ }
192
+ /**
193
+ * Run all validations for a component
194
+ */
195
+ async validateComponent(componentPath, withTests = false) {
196
+ console.log(chalk_1.default.blue.bold(`\n🔍 Validating: ${path_1.default.basename(componentPath)}\n`));
197
+ const results = {
198
+ typescript: await this.validateTypeScript(componentPath),
199
+ eslint: await this.validateESLint(componentPath),
200
+ build: await this.validateBuild(),
201
+ };
202
+ if (withTests) {
203
+ const testPath = componentPath.replace(/\.tsx?$/, '.test.tsx');
204
+ if (await fs.pathExists(testPath)) {
205
+ results.tests = await this.validateTests(testPath);
206
+ }
207
+ }
208
+ const allPassed = results.typescript.passed &&
209
+ results.eslint.passed &&
210
+ results.build.passed &&
211
+ (!results.tests || results.tests.passed);
212
+ if (allPassed) {
213
+ console.log(chalk_1.default.green.bold('\n✅ All validations passed!\n'));
214
+ }
215
+ else {
216
+ console.log(chalk_1.default.red.bold('\n❌ Some validations failed\n'));
217
+ }
218
+ return results;
219
+ }
220
+ /**
221
+ * Run complete project validation
222
+ */
223
+ async validateProject() {
224
+ console.log(chalk_1.default.blue.bold('\n🔍 Running Complete Project Validation\n'));
225
+ const results = {
226
+ typescript: await this.validateTypeScript(),
227
+ eslint: await this.validateESLint(),
228
+ build: await this.validateBuild(),
229
+ };
230
+ // Check for test script in package.json
231
+ const packageJsonPath = path_1.default.join(this.projectPath, 'package.json');
232
+ if (await fs.pathExists(packageJsonPath)) {
233
+ const packageJson = await fs.readJson(packageJsonPath);
234
+ if (packageJson.scripts?.test) {
235
+ results.tests = await this.validateTests();
236
+ }
237
+ }
238
+ return results;
239
+ }
240
+ /**
241
+ * Parse TypeScript errors
242
+ */
243
+ parseTypeScriptErrors(output) {
244
+ const errors = [];
245
+ const errorRegex = /(.+\.tsx?)\((\d+),(\d+)\): error TS(\d+): (.+)/g;
246
+ let match;
247
+ while ((match = errorRegex.exec(output)) !== null) {
248
+ const [, file, line, col, code, message] = match;
249
+ errors.push(`${file}:${line}:${col} - TS${code}: ${message}`);
250
+ }
251
+ return errors;
252
+ }
253
+ /**
254
+ * Parse ESLint errors
255
+ */
256
+ parseESLintErrors(output) {
257
+ const errors = [];
258
+ const warnings = [];
259
+ const lines = output.split('\n');
260
+ for (const line of lines) {
261
+ if (line.includes('error')) {
262
+ errors.push(line.trim());
263
+ }
264
+ else if (line.includes('warning')) {
265
+ warnings.push(line.trim());
266
+ }
267
+ }
268
+ return { errors, warnings };
269
+ }
270
+ /**
271
+ * Parse build errors
272
+ */
273
+ parseBuildErrors(output) {
274
+ const errors = [];
275
+ const lines = output.split('\n');
276
+ for (const line of lines) {
277
+ if (line.includes('ERROR') ||
278
+ line.includes('Failed to compile') ||
279
+ line.includes('Module not found') ||
280
+ line.includes('Cannot find')) {
281
+ errors.push(line.trim());
282
+ }
283
+ }
284
+ return errors;
285
+ }
286
+ /**
287
+ * Parse test errors
288
+ */
289
+ parseTestErrors(output) {
290
+ const errors = [];
291
+ const lines = output.split('\n');
292
+ for (const line of lines) {
293
+ if (line.includes('FAIL') || line.includes('✕')) {
294
+ errors.push(line.trim());
295
+ }
296
+ }
297
+ return errors;
298
+ }
299
+ /**
300
+ * Get error context for AI retry
301
+ */
302
+ static extractErrorContext(validationResults) {
303
+ const context = [];
304
+ if (!validationResults.typescript.passed) {
305
+ context.push('TypeScript Errors:');
306
+ validationResults.typescript.errors.forEach(err => context.push(` - ${err}`));
307
+ }
308
+ if (!validationResults.eslint.passed) {
309
+ context.push('ESLint Errors:');
310
+ validationResults.eslint.errors.forEach(err => context.push(` - ${err}`));
311
+ }
312
+ if (!validationResults.build.passed) {
313
+ context.push('Build Errors:');
314
+ validationResults.build.errors.forEach(err => context.push(` - ${err}`));
315
+ }
316
+ if (validationResults.tests && !validationResults.tests.passed) {
317
+ context.push('Test Failures:');
318
+ validationResults.tests.errors.forEach(err => context.push(` - ${err}`));
319
+ }
320
+ return context.join('\n');
321
+ }
322
+ /**
323
+ * Format validation summary
324
+ */
325
+ static formatValidationSummary(results) {
326
+ const summary = [];
327
+ summary.push('Validation Results:');
328
+ summary.push(` TypeScript: ${results.typescript.passed ? '✅ Passed' : '❌ Failed'}`);
329
+ summary.push(` ESLint: ${results.eslint.passed ? '✅ Passed' : '❌ Failed'}`);
330
+ summary.push(` Build: ${results.build.passed ? '✅ Passed' : '❌ Failed'}`);
331
+ if (results.tests) {
332
+ summary.push(` Tests: ${results.tests.passed ? '✅ Passed' : '❌ Failed'}`);
333
+ }
334
+ return summary.join('\n');
335
+ }
336
+ }
337
+ exports.BuildValidator = BuildValidator;
338
+ //# sourceMappingURL=buildValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildValidator.js","sourceRoot":"","sources":["../../src/utils/buildValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Progress Tracking System
3
+ *
4
+ * Manages granular progress tracking for build-app workflow.
5
+ * Generates JSON files that can be consumed by VS Code extension,
6
+ * web dashboard, or other external tools.
7
+ */
8
+ export type PhaseStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'validation_required';
9
+ export type StepStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'skipped';
10
+ export interface StepProgress {
11
+ status: StepStatus;
12
+ timestamp?: string;
13
+ duration?: number;
14
+ error?: string;
15
+ metadata?: Record<string, any>;
16
+ }
17
+ export interface PhaseProgress {
18
+ status: PhaseStatus;
19
+ steps: number;
20
+ completedSteps: number;
21
+ duration: number;
22
+ startTime?: string;
23
+ endTime?: string;
24
+ userValidations?: Record<string, boolean>;
25
+ errors?: Array<{
26
+ step: string;
27
+ error: string;
28
+ timestamp: string;
29
+ }>;
30
+ }
31
+ export interface MasterProgress {
32
+ version: string;
33
+ startTime: string;
34
+ endTime: string | null;
35
+ status: PhaseStatus;
36
+ currentPhase: string;
37
+ currentStep: number;
38
+ totalSteps: number;
39
+ percentComplete: number;
40
+ phases: Record<string, PhaseProgress>;
41
+ errors: Array<{
42
+ phase: string;
43
+ step: number;
44
+ error: string;
45
+ timestamp: string;
46
+ }>;
47
+ retries: {
48
+ total: number;
49
+ byPhase: Record<string, number>;
50
+ };
51
+ userInteractions: number;
52
+ buildChecks: {
53
+ typescript: {
54
+ passed: number;
55
+ failed: number;
56
+ };
57
+ eslint: {
58
+ passed: number;
59
+ failed: number;
60
+ };
61
+ build: {
62
+ passed: number;
63
+ failed: number;
64
+ };
65
+ tests: {
66
+ passed: number;
67
+ failed: number;
68
+ };
69
+ };
70
+ }
71
+ export interface ComponentProgress {
72
+ component: string;
73
+ group: string;
74
+ status: StepStatus;
75
+ steps: Record<string, StepProgress>;
76
+ retries: number;
77
+ duration: number;
78
+ metadata?: {
79
+ linesOfCode?: number;
80
+ dependencies?: string[];
81
+ props?: string[];
82
+ exports?: string[];
83
+ };
84
+ }
85
+ export declare class ProgressTracker {
86
+ private projectPath;
87
+ private progressDir;
88
+ private masterProgress;
89
+ private phaseStartTimes;
90
+ private stepStartTimes;
91
+ constructor(projectPath: string);
92
+ private initializeMasterProgress;
93
+ private createPhaseProgress;
94
+ initialize(): Promise<void>;
95
+ startPhase(phaseName: string): Promise<void>;
96
+ completePhase(phaseName: string): Promise<void>;
97
+ failPhase(phaseName: string, error: string): Promise<void>;
98
+ requestValidation(phaseName: string, validationType: string): Promise<void>;
99
+ approveValidation(phaseName: string, validationType: string): Promise<void>;
100
+ incrementStep(phaseName: string): Promise<void>;
101
+ recordBuildCheck(type: 'typescript' | 'eslint' | 'build' | 'tests', passed: boolean): Promise<void>;
102
+ recordRetry(phaseName: string): Promise<void>;
103
+ setComponentCount(count: number): Promise<void>;
104
+ private calculateTotalSteps;
105
+ startComponentGeneration(componentName: string, group: string): Promise<void>;
106
+ updateComponentStep(componentName: string, stepName: string, status: StepStatus, metadata?: Record<string, any>): Promise<void>;
107
+ completeComponentGeneration(componentName: string, metadata?: ComponentProgress['metadata']): Promise<void>;
108
+ failComponentGeneration(componentName: string, error: string, retries: number): Promise<void>;
109
+ complete(): Promise<void>;
110
+ displaySummary(): void;
111
+ private saveMasterProgress;
112
+ private savePhaseProgress;
113
+ private saveComponentProgress;
114
+ private loadComponentProgress;
115
+ private getPhaseNumber;
116
+ private formatPhaseName;
117
+ private formatStepName;
118
+ getMasterProgress(): MasterProgress;
119
+ loadProgress(): Promise<MasterProgress | null>;
120
+ }
121
+ //# sourceMappingURL=progressTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressTracker.d.ts","sourceRoot":"","sources":["../../src/utils/progressTracker.ts"],"names":[],"mappings":"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"}