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.
- package/README.md +266 -515
- package/dist/README.md +388 -0
- package/dist/agents/implementations/WorkflowAgent.d.ts +4 -0
- package/dist/agents/implementations/WorkflowAgent.d.ts.map +1 -1
- package/dist/agents/implementations/WorkflowAgent.js +15 -1
- package/dist/agents/implementations/WorkflowAgent.js.map +1 -1
- package/dist/package.json +2 -2
- package/dist/utils/buildValidator.d.ts +72 -0
- package/dist/utils/buildValidator.d.ts.map +1 -0
- package/dist/utils/buildValidator.js +338 -0
- package/dist/utils/buildValidator.js.map +1 -0
- package/dist/utils/progressTracker.d.ts +121 -0
- package/dist/utils/progressTracker.d.ts.map +1 -0
- package/dist/utils/progressTracker.js +334 -0
- package/dist/utils/progressTracker.js.map +1 -0
- package/dist/utils/validationGates.d.ts +58 -0
- package/dist/utils/validationGates.d.ts.map +1 -0
- package/dist/utils/validationGates.js +390 -0
- package/dist/utils/validationGates.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Validation Gates System
|
|
4
|
+
*
|
|
5
|
+
* Implements user approval checkpoints for PRD, context files, and other critical artifacts.
|
|
6
|
+
* Follows "LLM as Compiler" philosophy - user approves 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.ValidationGates = void 0;
|
|
46
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
47
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
48
|
+
const fs = __importStar(require("fs-extra"));
|
|
49
|
+
const child_process_1 = require("child_process");
|
|
50
|
+
const util_1 = require("util");
|
|
51
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
52
|
+
class ValidationGates {
|
|
53
|
+
/**
|
|
54
|
+
* Validate PRD - CRITICAL GATE
|
|
55
|
+
* User must read and approve the entire PRD before component generation.
|
|
56
|
+
*/
|
|
57
|
+
static async validatePRD(prdPath, prdContent) {
|
|
58
|
+
console.log(chalk_1.default.blue.bold('\n╔════════════════════════════════════════════════════════════════╗'));
|
|
59
|
+
console.log(chalk_1.default.blue.bold('║ 📋 PRD VALIDATION REQUIRED - CRITICAL GATE ║'));
|
|
60
|
+
console.log(chalk_1.default.blue.bold('╚════════════════════════════════════════════════════════════════╝\n'));
|
|
61
|
+
console.log(chalk_1.default.yellow('🔍 The PRD is the "source code" for the AI compiler.'));
|
|
62
|
+
console.log(chalk_1.default.yellow('⚠️ Component generation quality depends on PRD accuracy.'));
|
|
63
|
+
console.log(chalk_1.default.yellow('📖 Please read EVERY section carefully before approving.\n'));
|
|
64
|
+
// Display PRD in sections
|
|
65
|
+
await this.displayPRDSections(prdContent);
|
|
66
|
+
const response = await (0, prompts_1.default)([
|
|
67
|
+
{
|
|
68
|
+
type: 'select',
|
|
69
|
+
name: 'action',
|
|
70
|
+
message: 'What would you like to do?',
|
|
71
|
+
choices: [
|
|
72
|
+
{ title: '📖 Read PRD in full (opens in pager)', value: 'read' },
|
|
73
|
+
{ title: '✏️ Edit PRD manually (opens in editor)', value: 'edit' },
|
|
74
|
+
{ title: '✅ Approve PRD (I have read everything)', value: 'approve' },
|
|
75
|
+
{ title: '🔄 Regenerate PRD with feedback', value: 'regenerate' },
|
|
76
|
+
{ title: '❌ Cancel build-app workflow', value: 'cancel' },
|
|
77
|
+
],
|
|
78
|
+
initial: 0,
|
|
79
|
+
},
|
|
80
|
+
]);
|
|
81
|
+
switch (response.action) {
|
|
82
|
+
case 'read':
|
|
83
|
+
await this.openInPager(prdContent);
|
|
84
|
+
return this.validatePRD(prdPath, prdContent); // Re-prompt after reading
|
|
85
|
+
case 'edit':
|
|
86
|
+
await this.openInEditor(prdPath);
|
|
87
|
+
const editedContent = await fs.readFile(prdPath, 'utf-8');
|
|
88
|
+
console.log(chalk_1.default.green('\n✅ PRD edited successfully!'));
|
|
89
|
+
return { approved: true, edited: true };
|
|
90
|
+
case 'approve':
|
|
91
|
+
const confirmation = await (0, prompts_1.default)({
|
|
92
|
+
type: 'confirm',
|
|
93
|
+
name: 'confirmed',
|
|
94
|
+
message: chalk_1.default.yellow('⚠️ Final confirmation: Have you read the ENTIRE PRD?'),
|
|
95
|
+
initial: false,
|
|
96
|
+
});
|
|
97
|
+
if (!confirmation.confirmed) {
|
|
98
|
+
console.log(chalk_1.default.yellow('\n📖 Please take time to read the PRD carefully.\n'));
|
|
99
|
+
return this.validatePRD(prdPath, prdContent);
|
|
100
|
+
}
|
|
101
|
+
console.log(chalk_1.default.green.bold('\n✅ PRD APPROVED - Proceeding to component generation\n'));
|
|
102
|
+
return { approved: true };
|
|
103
|
+
case 'regenerate':
|
|
104
|
+
const { feedback } = await (0, prompts_1.default)({
|
|
105
|
+
type: 'text',
|
|
106
|
+
name: 'feedback',
|
|
107
|
+
message: 'What changes would you like in the PRD?',
|
|
108
|
+
validate: (value) => value.length >= 10 || 'Please provide detailed feedback (min 10 chars)',
|
|
109
|
+
});
|
|
110
|
+
return { approved: false, feedback };
|
|
111
|
+
case 'cancel':
|
|
112
|
+
throw new Error('User cancelled workflow');
|
|
113
|
+
default:
|
|
114
|
+
return { approved: false };
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Validate Context File (Features, User Flows, Edge Cases, Tech Specs)
|
|
119
|
+
*/
|
|
120
|
+
static async validateContextFile(fileName, content, filePath) {
|
|
121
|
+
console.log(chalk_1.default.blue.bold(`\n╔════════════════════════════════════════════════════════════════╗`));
|
|
122
|
+
console.log(chalk_1.default.blue.bold(`║ ✅ ${fileName.toUpperCase()} VALIDATION REQUIRED ║`));
|
|
123
|
+
console.log(chalk_1.default.blue.bold(`╚════════════════════════════════════════════════════════════════╝\n`));
|
|
124
|
+
// Display content preview
|
|
125
|
+
console.log(chalk_1.default.gray('Preview (first 20 lines):\n'));
|
|
126
|
+
const lines = content.split('\n').slice(0, 20);
|
|
127
|
+
lines.forEach((line, idx) => {
|
|
128
|
+
console.log(chalk_1.default.gray(`${String(idx + 1).padStart(3, ' ')} │ ${line}`));
|
|
129
|
+
});
|
|
130
|
+
if (content.split('\n').length > 20) {
|
|
131
|
+
console.log(chalk_1.default.gray(`... ${content.split('\n').length - 20} more lines\n`));
|
|
132
|
+
}
|
|
133
|
+
const response = await (0, prompts_1.default)([
|
|
134
|
+
{
|
|
135
|
+
type: 'select',
|
|
136
|
+
name: 'action',
|
|
137
|
+
message: `Review ${fileName}:`,
|
|
138
|
+
choices: [
|
|
139
|
+
{ title: '📖 Read full file (opens in pager)', value: 'read' },
|
|
140
|
+
{ title: '✏️ Edit file', value: 'edit' },
|
|
141
|
+
{ title: '✅ Approve', value: 'approve' },
|
|
142
|
+
{ title: '🔄 Regenerate with feedback', value: 'regenerate' },
|
|
143
|
+
],
|
|
144
|
+
initial: 0,
|
|
145
|
+
},
|
|
146
|
+
]);
|
|
147
|
+
switch (response.action) {
|
|
148
|
+
case 'read':
|
|
149
|
+
await this.openInPager(content);
|
|
150
|
+
return this.validateContextFile(fileName, content, filePath);
|
|
151
|
+
case 'edit':
|
|
152
|
+
await this.openInEditor(filePath);
|
|
153
|
+
console.log(chalk_1.default.green(`\n✅ ${fileName} edited successfully!`));
|
|
154
|
+
return { approved: true, edited: true };
|
|
155
|
+
case 'approve':
|
|
156
|
+
console.log(chalk_1.default.green(`✅ ${fileName} approved\n`));
|
|
157
|
+
return { approved: true };
|
|
158
|
+
case 'regenerate':
|
|
159
|
+
const { feedback } = await (0, prompts_1.default)({
|
|
160
|
+
type: 'text',
|
|
161
|
+
name: 'feedback',
|
|
162
|
+
message: `What changes would you like in ${fileName}?`,
|
|
163
|
+
});
|
|
164
|
+
return { approved: false, feedback };
|
|
165
|
+
default:
|
|
166
|
+
return { approved: false };
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Validate Component List
|
|
171
|
+
*/
|
|
172
|
+
static async validateComponentList(componentList, filePath) {
|
|
173
|
+
console.log(chalk_1.default.blue.bold('\n╔════════════════════════════════════════════════════════════════╗'));
|
|
174
|
+
console.log(chalk_1.default.blue.bold('║ 📋 COMPONENT LIST VALIDATION REQUIRED ║'));
|
|
175
|
+
console.log(chalk_1.default.blue.bold('╚════════════════════════════════════════════════════════════════╝\n'));
|
|
176
|
+
// Display component tree
|
|
177
|
+
console.log(chalk_1.default.yellow(`Total Components: ${componentList.length}\n`));
|
|
178
|
+
const groupedComponents = this.groupComponents(componentList);
|
|
179
|
+
Object.entries(groupedComponents).forEach(([group, components]) => {
|
|
180
|
+
console.log(chalk_1.default.blue(`📁 ${group} (${components.length})`));
|
|
181
|
+
components.forEach((comp) => {
|
|
182
|
+
console.log(chalk_1.default.gray(` └─ ${comp.name || comp}`));
|
|
183
|
+
});
|
|
184
|
+
console.log();
|
|
185
|
+
});
|
|
186
|
+
const response = await (0, prompts_1.default)([
|
|
187
|
+
{
|
|
188
|
+
type: 'select',
|
|
189
|
+
name: 'action',
|
|
190
|
+
message: 'Review component list:',
|
|
191
|
+
choices: [
|
|
192
|
+
{ title: '✅ Approve component list', value: 'approve' },
|
|
193
|
+
{ title: '✏️ Edit component list (opens JSON editor)', value: 'edit' },
|
|
194
|
+
{ title: '🔄 Regenerate with different grouping', value: 'regenerate' },
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
]);
|
|
198
|
+
switch (response.action) {
|
|
199
|
+
case 'approve':
|
|
200
|
+
console.log(chalk_1.default.green('✅ Component list approved\n'));
|
|
201
|
+
return { approved: true };
|
|
202
|
+
case 'edit':
|
|
203
|
+
await this.openInEditor(filePath);
|
|
204
|
+
console.log(chalk_1.default.green('\n✅ Component list edited successfully!'));
|
|
205
|
+
return { approved: true, edited: true };
|
|
206
|
+
case 'regenerate':
|
|
207
|
+
const { feedback } = await (0, prompts_1.default)({
|
|
208
|
+
type: 'text',
|
|
209
|
+
name: 'feedback',
|
|
210
|
+
message: 'How would you like components grouped?',
|
|
211
|
+
});
|
|
212
|
+
return { approved: false, feedback };
|
|
213
|
+
default:
|
|
214
|
+
return { approved: false };
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Validate Types
|
|
219
|
+
*/
|
|
220
|
+
static async validateTypes(typesPath, typesContent) {
|
|
221
|
+
console.log(chalk_1.default.blue.bold('\n╔════════════════════════════════════════════════════════════════╗'));
|
|
222
|
+
console.log(chalk_1.default.blue.bold('║ 🔷 TYPESCRIPT TYPES VALIDATION REQUIRED ║'));
|
|
223
|
+
console.log(chalk_1.default.blue.bold('╚════════════════════════════════════════════════════════════════╝\n'));
|
|
224
|
+
// Extract interface names
|
|
225
|
+
const interfaceMatches = typesContent.matchAll(/(?:interface|type)\s+(\w+)/g);
|
|
226
|
+
const interfaces = Array.from(interfaceMatches).map(match => match[1]);
|
|
227
|
+
console.log(chalk_1.default.yellow(`Total Types: ${interfaces.length}\n`));
|
|
228
|
+
interfaces.forEach((name, idx) => {
|
|
229
|
+
console.log(chalk_1.default.gray(`${String(idx + 1).padStart(3, ' ')}. ${name}`));
|
|
230
|
+
});
|
|
231
|
+
console.log();
|
|
232
|
+
const response = await (0, prompts_1.default)([
|
|
233
|
+
{
|
|
234
|
+
type: 'select',
|
|
235
|
+
name: 'action',
|
|
236
|
+
message: 'Review types:',
|
|
237
|
+
choices: [
|
|
238
|
+
{ title: '📖 Read full types file', value: 'read' },
|
|
239
|
+
{ title: '✅ Approve types', value: 'approve' },
|
|
240
|
+
{ title: '✏️ Edit types', value: 'edit' },
|
|
241
|
+
],
|
|
242
|
+
},
|
|
243
|
+
]);
|
|
244
|
+
switch (response.action) {
|
|
245
|
+
case 'read':
|
|
246
|
+
await this.openInPager(typesContent);
|
|
247
|
+
return this.validateTypes(typesPath, typesContent);
|
|
248
|
+
case 'approve':
|
|
249
|
+
console.log(chalk_1.default.green('✅ Types approved\n'));
|
|
250
|
+
return { approved: true };
|
|
251
|
+
case 'edit':
|
|
252
|
+
await this.openInEditor(typesPath);
|
|
253
|
+
console.log(chalk_1.default.green('\n✅ Types edited successfully!'));
|
|
254
|
+
return { approved: true, edited: true };
|
|
255
|
+
default:
|
|
256
|
+
return { approved: false };
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Display PRD in sections
|
|
261
|
+
*/
|
|
262
|
+
static displayPRDSections(prdContent) {
|
|
263
|
+
const sections = prdContent.split(/^##\s+/m).filter(Boolean);
|
|
264
|
+
console.log(chalk_1.default.blue('📑 PRD Sections:\n'));
|
|
265
|
+
sections.forEach((section, idx) => {
|
|
266
|
+
const title = section.split('\n')[0];
|
|
267
|
+
const lineCount = section.split('\n').length;
|
|
268
|
+
console.log(chalk_1.default.gray(`${String(idx + 1).padStart(2, ' ')}. ${title} (${lineCount} lines)`));
|
|
269
|
+
});
|
|
270
|
+
console.log();
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Open content in system pager (less/more)
|
|
274
|
+
*/
|
|
275
|
+
static async openInPager(content) {
|
|
276
|
+
const tempFile = `/tmp/mycontext-prd-${Date.now()}.md`;
|
|
277
|
+
await fs.writeFile(tempFile, content);
|
|
278
|
+
try {
|
|
279
|
+
// Try to use `less` with syntax highlighting if available
|
|
280
|
+
await execAsync(`less -R ${tempFile}`);
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
// Fallback to basic `more`
|
|
284
|
+
try {
|
|
285
|
+
await execAsync(`more ${tempFile}`);
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
console.log(chalk_1.default.yellow('\n⚠️ Could not open pager, displaying in terminal:\n'));
|
|
289
|
+
console.log(content);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
finally {
|
|
293
|
+
await fs.remove(tempFile).catch(() => { });
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Open file in user's default editor
|
|
298
|
+
*/
|
|
299
|
+
static async openInEditor(filePath) {
|
|
300
|
+
const editor = process.env.EDITOR || process.env.VISUAL || 'vim';
|
|
301
|
+
console.log(chalk_1.default.blue(`\n📝 Opening in ${editor}...`));
|
|
302
|
+
console.log(chalk_1.default.gray('Press any key after saving and closing the editor.\n'));
|
|
303
|
+
try {
|
|
304
|
+
await execAsync(`${editor} ${filePath}`);
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
console.log(chalk_1.default.red(`\n❌ Could not open editor: ${error}`));
|
|
308
|
+
console.log(chalk_1.default.yellow(`Please manually edit: ${filePath}`));
|
|
309
|
+
await (0, prompts_1.default)({
|
|
310
|
+
type: 'confirm',
|
|
311
|
+
name: 'done',
|
|
312
|
+
message: 'Press Enter after editing the file...',
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Group components by category
|
|
318
|
+
*/
|
|
319
|
+
static groupComponents(componentList) {
|
|
320
|
+
const grouped = {};
|
|
321
|
+
componentList.forEach(comp => {
|
|
322
|
+
const group = (typeof comp === 'object' ? comp.group : null) || 'uncategorized';
|
|
323
|
+
if (!grouped[group]) {
|
|
324
|
+
grouped[group] = [];
|
|
325
|
+
}
|
|
326
|
+
grouped[group].push(comp);
|
|
327
|
+
});
|
|
328
|
+
return grouped;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Validate Build Strategy Selection
|
|
332
|
+
*/
|
|
333
|
+
static async validateBuildStrategy(strategies, recommended) {
|
|
334
|
+
console.log(chalk_1.default.blue.bold('\n╔════════════════════════════════════════════════════════════════╗'));
|
|
335
|
+
console.log(chalk_1.default.blue.bold('║ 🎯 BUILD STRATEGY SELECTION REQUIRED ║'));
|
|
336
|
+
console.log(chalk_1.default.blue.bold('╚════════════════════════════════════════════════════════════════╝\n'));
|
|
337
|
+
console.log(chalk_1.default.green(`💡 Recommended: ${recommended.name}\n`));
|
|
338
|
+
console.log(chalk_1.default.gray(recommended.description));
|
|
339
|
+
console.log();
|
|
340
|
+
const { choice } = await (0, prompts_1.default)({
|
|
341
|
+
type: 'select',
|
|
342
|
+
name: 'choice',
|
|
343
|
+
message: 'Select build strategy:',
|
|
344
|
+
choices: strategies.map(s => ({
|
|
345
|
+
title: `${s.icon} ${s.name} - ${s.timeToFirstDemo}`,
|
|
346
|
+
value: s.id,
|
|
347
|
+
description: s.description,
|
|
348
|
+
})),
|
|
349
|
+
});
|
|
350
|
+
if (!choice) {
|
|
351
|
+
return { approved: false };
|
|
352
|
+
}
|
|
353
|
+
console.log(chalk_1.default.green(`\n✅ Strategy selected: ${choice}\n`));
|
|
354
|
+
return { approved: true, selectedStrategy: choice };
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Final build validation - user tests the app
|
|
358
|
+
*/
|
|
359
|
+
static async validateFinalBuild() {
|
|
360
|
+
console.log(chalk_1.default.blue.bold('\n╔════════════════════════════════════════════════════════════════╗'));
|
|
361
|
+
console.log(chalk_1.default.blue.bold('║ 🚀 FINAL BUILD VALIDATION - TEST YOUR APP ║'));
|
|
362
|
+
console.log(chalk_1.default.blue.bold('╚════════════════════════════════════════════════════════════════╝\n'));
|
|
363
|
+
console.log(chalk_1.default.yellow('🧪 Please test your application:'));
|
|
364
|
+
console.log(chalk_1.default.gray(' 1. Run `pnpm dev` in another terminal'));
|
|
365
|
+
console.log(chalk_1.default.gray(' 2. Visit http://localhost:3000'));
|
|
366
|
+
console.log(chalk_1.default.gray(' 3. Test key user flows'));
|
|
367
|
+
console.log(chalk_1.default.gray(' 4. Check responsive design'));
|
|
368
|
+
console.log(chalk_1.default.gray(' 5. Verify all components render correctly\n'));
|
|
369
|
+
const response = await (0, prompts_1.default)([
|
|
370
|
+
{
|
|
371
|
+
type: 'confirm',
|
|
372
|
+
name: 'approved',
|
|
373
|
+
message: 'Does the application work as expected?',
|
|
374
|
+
initial: false,
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
type: (prev) => (prev ? null : 'text'),
|
|
378
|
+
name: 'issues',
|
|
379
|
+
message: 'What issues did you find?',
|
|
380
|
+
},
|
|
381
|
+
]);
|
|
382
|
+
if (!response.approved) {
|
|
383
|
+
return { approved: false, feedback: response.issues };
|
|
384
|
+
}
|
|
385
|
+
console.log(chalk_1.default.green.bold('\n🎉 Final build approved! Ready for deployment.\n'));
|
|
386
|
+
return { approved: true };
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
exports.ValidationGates = ValidationGates;
|
|
390
|
+
//# sourceMappingURL=validationGates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validationGates.js","sourceRoot":"","sources":["../../src/utils/validationGates.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mycontext-cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "MyContext CLI - AI-powered full-stack application generator with complete architecture generation, server actions, Next.js 15 App Router, and self-documenting components",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"build": "npm run build:clean && npm run build:compile && npm run build:copy",
|
|
12
12
|
"build:clean": "rm -rf dist && ([ \"$npm_config_loglevel\" = \"silent\" ] || echo '🧹 Cleaned build directory')",
|
|
13
13
|
"build:compile": "([ \"$npm_config_loglevel\" = \"silent\" ] || echo '🔨 Compiling TypeScript...') && tsc --noEmitOnError false",
|
|
14
|
-
"build:copy": "([ \"$npm_config_loglevel\" = \"silent\" ] || echo '📋 Copying config files...') && cp -r src/config dist/ && cp package.json dist/ && ([ \"$npm_config_loglevel\" = \"silent\" ] || echo '✅ Build complete')",
|
|
14
|
+
"build:copy": "([ \"$npm_config_loglevel\" = \"silent\" ] || echo '📋 Copying config files...') && cp -r src/config dist/ && cp package.json dist/ && cp README.md dist/ && ([ \"$npm_config_loglevel\" = \"silent\" ] || echo '✅ Build complete')",
|
|
15
15
|
"dev": "ts-node src/cli.ts",
|
|
16
16
|
"start": "node dist/cli.js",
|
|
17
17
|
"watch": "tsc --watch --pretty",
|