mycontext-cli 1.0.8 → 1.0.11

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 (63) hide show
  1. package/README.md +281 -76
  2. package/dist/agents/implementations/ArchitectAgent.d.ts +4 -0
  3. package/dist/agents/implementations/ArchitectAgent.d.ts.map +1 -1
  4. package/dist/agents/implementations/ArchitectAgent.js +27 -3
  5. package/dist/agents/implementations/ArchitectAgent.js.map +1 -1
  6. package/dist/agents/implementations/BackendDevAgent.d.ts +3 -0
  7. package/dist/agents/implementations/BackendDevAgent.d.ts.map +1 -1
  8. package/dist/agents/implementations/BackendDevAgent.js +45 -3
  9. package/dist/agents/implementations/BackendDevAgent.js.map +1 -1
  10. package/dist/agents/implementations/DocsSubAgent.d.ts +1 -0
  11. package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -1
  12. package/dist/agents/implementations/DocsSubAgent.js +4 -1
  13. package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
  14. package/dist/agents/implementations/InteractiveAgent.d.ts +35 -0
  15. package/dist/agents/implementations/InteractiveAgent.d.ts.map +1 -0
  16. package/dist/agents/implementations/InteractiveAgent.js +309 -0
  17. package/dist/agents/implementations/InteractiveAgent.js.map +1 -0
  18. package/dist/agents/implementations/ProjectSetupAgent.d.ts +23 -0
  19. package/dist/agents/implementations/ProjectSetupAgent.d.ts.map +1 -0
  20. package/dist/agents/implementations/ProjectSetupAgent.js +231 -0
  21. package/dist/agents/implementations/ProjectSetupAgent.js.map +1 -0
  22. package/dist/agents/implementations/SecurityAgent.d.ts +4 -0
  23. package/dist/agents/implementations/SecurityAgent.d.ts.map +1 -1
  24. package/dist/agents/implementations/SecurityAgent.js +27 -3
  25. package/dist/agents/implementations/SecurityAgent.js.map +1 -1
  26. package/dist/agents/implementations/WorkflowAgent.d.ts +31 -0
  27. package/dist/agents/implementations/WorkflowAgent.d.ts.map +1 -0
  28. package/dist/agents/implementations/WorkflowAgent.js +381 -0
  29. package/dist/agents/implementations/WorkflowAgent.js.map +1 -0
  30. package/dist/agents/interfaces/SubAgent.d.ts +66 -0
  31. package/dist/agents/interfaces/SubAgent.d.ts.map +1 -1
  32. package/dist/agents/personalities/definitions.d.ts.map +1 -1
  33. package/dist/agents/personalities/definitions.js +52 -0
  34. package/dist/agents/personalities/definitions.js.map +1 -1
  35. package/dist/cli.js +65 -2
  36. package/dist/cli.js.map +1 -1
  37. package/dist/commands/build-app.d.ts +4 -18
  38. package/dist/commands/build-app.d.ts.map +1 -1
  39. package/dist/commands/build-app.js +52 -478
  40. package/dist/commands/build-app.js.map +1 -1
  41. package/dist/commands/compile-prd.d.ts +18 -0
  42. package/dist/commands/compile-prd.d.ts.map +1 -0
  43. package/dist/commands/compile-prd.js +217 -0
  44. package/dist/commands/compile-prd.js.map +1 -0
  45. package/dist/commands/generate-context-files.d.ts +26 -0
  46. package/dist/commands/generate-context-files.d.ts.map +1 -0
  47. package/dist/commands/generate-context-files.js +320 -0
  48. package/dist/commands/generate-context-files.js.map +1 -0
  49. package/dist/commands/generate.d.ts +1 -0
  50. package/dist/commands/generate.d.ts.map +1 -1
  51. package/dist/commands/generate.js +156 -14
  52. package/dist/commands/generate.js.map +1 -1
  53. package/dist/config/api.js +1 -1
  54. package/dist/config/api.js.map +1 -1
  55. package/dist/config/api.ts +1 -1
  56. package/dist/utils/hybridAIClient.d.ts.map +1 -1
  57. package/dist/utils/hybridAIClient.js +4 -1
  58. package/dist/utils/hybridAIClient.js.map +1 -1
  59. package/package.json +4 -2
  60. package/dist/utils/ollamaClient.d.ts +0 -30
  61. package/dist/utils/ollamaClient.d.ts.map +0 -1
  62. package/dist/utils/ollamaClient.js +0 -226
  63. package/dist/utils/ollamaClient.js.map +0 -1
@@ -1,507 +1,81 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
3
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
5
  };
39
6
  Object.defineProperty(exports, "__esModule", { value: true });
40
7
  exports.BuildAppCommand = void 0;
41
8
  const chalk_1 = __importDefault(require("chalk"));
42
- const fs_1 = require("fs");
43
9
  const path_1 = __importDefault(require("path"));
44
- const child_process_1 = require("child_process");
45
- const generate_1 = require("./generate");
46
- const generate_components_1 = require("./generate-components");
47
- const validate_1 = require("./validate");
48
- const spinner_1 = require("../utils/spinner");
10
+ const WorkflowAgent_1 = require("../agents/implementations/WorkflowAgent");
49
11
  class BuildAppCommand {
50
12
  constructor() {
51
- this.spinner = new spinner_1.EnhancedSpinner("Building app...");
13
+ this.workflowAgent = new WorkflowAgent_1.WorkflowAgent();
14
+ // Legacy methods removed - now using WorkflowAgent for all functionality
15
+ // The new agent-based workflow provides better coordination, error handling, and user interaction
52
16
  }
53
17
  async execute(options) {
54
- const { description, output = "mycontext-app", framework = "nextjs", withTests = false, verbose = false, existing = false, migrate = false, } = options;
18
+ const { description, output = "mycontext-app", framework = "nextjs", withTests = false, verbose = false, existing = false, migrate = false, interactive = false, skipValidation = false, maxRetries = 3, } = options;
55
19
  console.log(chalk_1.default.blue.bold("🚀 Building Complete App with MyContext\n"));
56
20
  console.log(chalk_1.default.gray(`Description: ${description}`));
57
21
  console.log(chalk_1.default.gray(`Output: ${output}`));
58
- console.log(chalk_1.default.gray(`Framework: ${framework}\n`));
22
+ console.log(chalk_1.default.gray(`Framework: ${framework}`));
23
+ console.log(chalk_1.default.gray(`Interactive Mode: ${interactive ? "Enabled" : "Disabled"}`));
24
+ console.log(chalk_1.default.gray(`Max Retries: ${maxRetries}\n`));
59
25
  try {
60
- // Check if working with existing project
61
- if (existing || output === ".") {
62
- console.log(chalk_1.default.yellow("🔍 Working with existing project"));
63
- // Step 1: Analyze existing project
64
- this.spinner.start().updateText("Analyzing existing project...");
65
- await this.analyzeExistingProject();
66
- this.spinner.succeed("Project analyzed");
67
- // Step 2: Migrate to MyContext structure if requested
68
- if (migrate) {
69
- this.spinner
70
- .start()
71
- .updateText("Migrating to MyContext structure...");
72
- await this.migrateExistingProject();
73
- this.spinner.succeed("Project migrated");
26
+ // Use the new WorkflowAgent for agent-based, interactive workflow
27
+ const workflowInput = {
28
+ description,
29
+ projectName: output,
30
+ framework: framework,
31
+ withTests,
32
+ interactive,
33
+ skipValidation,
34
+ maxRetries,
35
+ };
36
+ const result = await this.workflowAgent.run(workflowInput);
37
+ if (result.success) {
38
+ console.log(chalk_1.default.green.bold("\n✅ App built successfully with MyContext!"));
39
+ console.log(chalk_1.default.yellow(`\n📁 Output directory: ${path_1.default.resolve(result.projectPath)}`));
40
+ console.log(chalk_1.default.yellow(`🚀 To start the app:`));
41
+ console.log(chalk_1.default.gray(` cd ${result.projectPath}`));
42
+ console.log(chalk_1.default.gray(` pnpm dev`));
43
+ console.log(chalk_1.default.yellow(`\n🌐 To preview:`));
44
+ console.log(chalk_1.default.gray(` mycontext preview components --project ${result.projectPath}`));
45
+ // Show workflow statistics
46
+ if (interactive) {
47
+ console.log(chalk_1.default.blue(`\n📊 Workflow Statistics:`));
48
+ console.log(chalk_1.default.gray(` • Completed Steps: ${result.completedSteps.length}`));
49
+ console.log(chalk_1.default.gray(` • User Interactions: ${result.userInteractions}`));
50
+ console.log(chalk_1.default.gray(` • Total Retries: ${result.totalRetries}`));
51
+ console.log(chalk_1.default.gray(` • Duration: ${Math.round(result.duration / 1000)}s`));
74
52
  }
75
53
  }
76
54
  else {
77
- // Step 1: Initialize new project
78
- this.spinner.start().updateText("Initializing project...");
79
- await this.initializeProject(output, framework);
80
- this.spinner.succeed("Project initialized");
55
+ console.log(chalk_1.default.red.bold("\n❌ Workflow failed"));
56
+ console.log(chalk_1.default.red(`Failed steps: ${result.failedSteps.join(", ")}`));
57
+ // Provide recovery options if interactive
58
+ if (interactive && result.failedSteps.length > 0) {
59
+ console.log(chalk_1.default.yellow(`\n🔧 Recovery Options:`));
60
+ console.log(chalk_1.default.gray(` • Run individual commands for failed steps`));
61
+ console.log(chalk_1.default.gray(` • Check .mycontext/ directory for generated files`));
62
+ console.log(chalk_1.default.gray(` • Review error logs above for specific issues`));
63
+ }
64
+ throw new Error(`Workflow failed with ${result.failedSteps.length} failed steps`);
81
65
  }
82
- // Step 2: Generate context files
83
- this.spinner.start().updateText("Generating context files...");
84
- await this.generateContextFiles(output, description);
85
- this.spinner.succeed("Context files generated");
86
- // Step 3: Validate PRD
87
- this.spinner.start().updateText("Validating PRD...");
88
- await this.validatePRD(output);
89
- this.spinner.succeed("PRD validated");
90
- // Step 4: Generate components list
91
- this.spinner.start().updateText("Generating components list...");
92
- await this.generateComponentsList(output);
93
- this.spinner.succeed("Components list generated");
94
- // Step 5: Generate components
95
- this.spinner.start().updateText("Generating components...");
96
- await this.generateComponents(output, withTests);
97
- this.spinner.succeed("Components generated");
98
- // Step 6: Install dependencies
99
- this.spinner.start().updateText("Installing dependencies...");
100
- await this.installDependencies(output);
101
- this.spinner.succeed("Dependencies installed");
102
- // Step 7: Run linter
103
- this.spinner.start().updateText("Running linter...");
104
- await this.runLinter(output);
105
- this.spinner.succeed("Linting completed");
106
- // Step 8: Build project
107
- this.spinner.start().updateText("Building project...");
108
- await this.buildProject(output);
109
- this.spinner.succeed("Project built successfully");
110
- // Step 9: Generate backend integration
111
- this.spinner.start().updateText("Generating backend integration...");
112
- await this.generateBackendIntegration(output);
113
- this.spinner.succeed("Backend integration generated");
114
- // Step 10: Generate app structure with landing page focus
115
- this.spinner.start().updateText("Generating app structure...");
116
- await this.generateAppStructure(output, description);
117
- this.spinner.succeed("App structure generated");
118
- console.log(chalk_1.default.green.bold("\n✅ App built successfully!"));
119
- console.log(chalk_1.default.yellow(`\n📁 Output directory: ${path_1.default.resolve(output)}`));
120
- console.log(chalk_1.default.yellow(`🚀 To start the app:`));
121
- console.log(chalk_1.default.gray(` cd ${output}`));
122
- console.log(chalk_1.default.gray(` pnpm dev`));
123
- console.log(chalk_1.default.yellow(`\n🌐 To preview:`));
124
- console.log(chalk_1.default.gray(` mycontext preview components --project ${output}`));
125
66
  }
126
67
  catch (error) {
127
- this.spinner.fail("Build failed");
68
+ console.log(chalk_1.default.red.bold("\n❌ Build failed"));
69
+ console.log(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : "Unknown error"}`));
70
+ // Provide helpful next steps
71
+ console.log(chalk_1.default.yellow(`\n🔧 Troubleshooting:`));
72
+ console.log(chalk_1.default.gray(` • Check that all dependencies are installed`));
73
+ console.log(chalk_1.default.gray(` • Verify API keys are configured (optional)`));
74
+ console.log(chalk_1.default.gray(` • Review the generated files in .mycontext/`));
75
+ console.log(chalk_1.default.gray(` • Try running individual commands manually`));
128
76
  throw error;
129
77
  }
130
78
  }
131
- async initializeProject(projectName, framework) {
132
- // Use the init command directly
133
- const { InitCommand } = await Promise.resolve().then(() => __importStar(require("./init")));
134
- const initCommand = new InitCommand();
135
- await initCommand.execute(projectName, {
136
- framework,
137
- yes: true,
138
- verbose: false,
139
- });
140
- }
141
- async generateContextFiles(projectName, description) {
142
- const generateCommand = new generate_1.GenerateCommand();
143
- await generateCommand.execute({
144
- type: "all",
145
- description,
146
- yes: true,
147
- verbose: false,
148
- });
149
- }
150
- async validatePRD(projectName) {
151
- const validateCommand = new validate_1.ValidateCommand();
152
- await validateCommand.execute("prd", {
153
- yes: true,
154
- verbose: false,
155
- });
156
- }
157
- async generateComponentsList(projectName) {
158
- const generateCommand = new generate_1.GenerateCommand();
159
- await generateCommand.execute({
160
- type: "components-list",
161
- yes: true,
162
- verbose: false,
163
- });
164
- }
165
- async generateComponents(projectName, withTests) {
166
- const generateComponentsCommand = new generate_components_1.GenerateComponentsCommand();
167
- await generateComponentsCommand.execute("all", {
168
- withTests,
169
- yes: true,
170
- verbose: false,
171
- });
172
- }
173
- async installDependencies(projectName) {
174
- const projectPath = path_1.default.resolve(projectName);
175
- await (0, child_process_1.execSync)("pnpm install", { cwd: projectPath });
176
- }
177
- async runLinter(projectName) {
178
- const projectPath = path_1.default.resolve(projectName);
179
- try {
180
- await (0, child_process_1.execSync)("pnpm lint", { cwd: projectPath });
181
- }
182
- catch (error) {
183
- // Linting errors are non-fatal for now
184
- console.log(chalk_1.default.yellow("⚠️ Linting completed with warnings"));
185
- }
186
- }
187
- async buildProject(projectName) {
188
- const projectPath = path_1.default.resolve(projectName);
189
- await (0, child_process_1.execSync)("pnpm build", { cwd: projectPath });
190
- }
191
- async generateBackendIntegration(projectName) {
192
- const projectPath = path_1.default.resolve(projectName);
193
- // Import and use Backend Dev Agent
194
- const { BackendDevAgent } = await Promise.resolve().then(() => __importStar(require("../agents/implementations/BackendDevAgent")));
195
- const backendAgent = new BackendDevAgent();
196
- await backendAgent.execute({
197
- projectPath,
198
- typesPath: path_1.default.join(projectPath, ".mycontext", "02-types.ts"),
199
- componentsListPath: path_1.default.join(projectPath, ".mycontext", "04-component-list.json"),
200
- contextPath: path_1.default.join(projectPath, ".mycontext", "01-prd.md"),
201
- verbose: false,
202
- });
203
- }
204
- async generateAppStructure(projectName, description) {
205
- const projectPath = path_1.default.resolve(projectName);
206
- // Read the components list to understand what we have
207
- const componentsListPath = path_1.default.join(projectPath, ".mycontext", "04-component-list.json");
208
- const componentsList = JSON.parse(await fs_1.promises.readFile(componentsListPath, "utf-8"));
209
- // Generate a comprehensive landing page that showcases the app
210
- const landingPageContent = this.generateLandingPage(componentsList, description);
211
- // Write the main landing page
212
- await fs_1.promises.writeFile(path_1.default.join(projectPath, "src", "app", "page.tsx"), landingPageContent, "utf-8");
213
- // Generate additional pages organized by project structure
214
- await this.generateProjectPages(projectName, componentsList, description);
215
- }
216
- generateLandingPage(componentsList, description) {
217
- const { groups = {} } = componentsList;
218
- // Prioritize landing page components (hero, features, etc.)
219
- const landingComponents = this.organizeComponentsForLanding(groups);
220
- let imports = "";
221
- let heroSection = "";
222
- let featuresSection = "";
223
- let componentsSection = "";
224
- // Generate imports for landing page components
225
- Object.entries(landingComponents).forEach(([groupName, components]) => {
226
- components.forEach((component) => {
227
- const componentName = component.name;
228
- const importPath = `@/components/${groupName}/${componentName}`;
229
- imports += `import { ${componentName} } from "${importPath}";\n`;
230
- });
231
- });
232
- // Generate hero section (prioritize hero, banner, header components)
233
- const heroComponents = landingComponents.hero || [];
234
- if (heroComponents.length > 0) {
235
- heroSection = `
236
- {/* Hero Section */}
237
- <section className="relative min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 to-slate-100">
238
- <div className="container mx-auto px-4">
239
- ${heroComponents
240
- .map((component) => `<${component.name} />`)
241
- .join("\n ")}
242
- </div>
243
- </section>`;
244
- }
245
- // Generate features section (prioritize feature, card, showcase components)
246
- const featureComponents = landingComponents.features || [];
247
- if (featureComponents.length > 0) {
248
- featuresSection = `
249
- {/* Features Section */}
250
- <section className="py-20 bg-white">
251
- <div className="container mx-auto px-4">
252
- <div className="text-center mb-16">
253
- <h2 className="text-4xl font-bold mb-4">Features</h2>
254
- <p className="text-xl text-slate-600">Discover what makes this app special</p>
255
- </div>
256
- <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
257
- ${featureComponents
258
- .map((component) => `
259
- <div className="group">
260
- <${component.name} />
261
- </div>
262
- `)
263
- .join("")}
264
- </div>
265
- </div>
266
- </section>`;
267
- }
268
- // Generate components showcase section
269
- const otherComponents = Object.entries(groups)
270
- .filter(([groupName]) => !["hero", "features"].includes(groupName))
271
- .reduce((acc, [groupName, components]) => {
272
- acc[groupName] = components;
273
- return acc;
274
- }, {});
275
- if (Object.keys(otherComponents).length > 0) {
276
- componentsSection = `
277
- {/* Components Showcase */}
278
- <section className="py-20 bg-slate-50">
279
- <div className="container mx-auto px-4">
280
- <div className="text-center mb-16">
281
- <h2 className="text-4xl font-bold mb-4">Components</h2>
282
- <p className="text-xl text-slate-600">Explore all available components</p>
283
- </div>
284
- ${Object.entries(otherComponents)
285
- .map(([groupName, components]) => `
286
- <div className="mb-16">
287
- <h3 className="text-2xl font-semibold mb-8 capitalize">${groupName.replace(/-/g, " ")}</h3>
288
- <div className="grid gap-8">
289
- ${components
290
- .map((component) => `
291
- <div className="border rounded-lg p-6 bg-white shadow-sm">
292
- <h4 className="text-lg font-medium mb-4">${component.name}</h4>
293
- <div className="space-y-4">
294
- <${component.name} />
295
- </div>
296
- </div>
297
- `)
298
- .join("")}
299
- </div>
300
- </div>
301
- `)
302
- .join("")}
303
- </div>
304
- </section>`;
305
- }
306
- return `import { Metadata } from "next";
307
- ${imports}
308
-
309
- export const metadata: Metadata = {
310
- title: "MyContext Generated App",
311
- description: "${description}",
312
- };
313
-
314
- export default function HomePage() {
315
- return (
316
- <div className="min-h-screen">
317
- ${heroSection}
318
- ${featuresSection}
319
- ${componentsSection}
320
- </div>
321
- );
322
- }`;
323
- }
324
- organizeComponentsForLanding(groups) {
325
- const organized = {
326
- hero: [],
327
- features: [],
328
- };
329
- // Categorize components for better landing page structure
330
- Object.entries(groups).forEach(([groupName, components]) => {
331
- components.forEach((component) => {
332
- const componentName = component.name.toLowerCase();
333
- // Hero section components
334
- if (componentName.includes("hero") ||
335
- componentName.includes("banner") ||
336
- componentName.includes("header") ||
337
- componentName.includes("intro")) {
338
- if (!organized.hero)
339
- organized.hero = [];
340
- organized.hero.push(component);
341
- }
342
- // Features section components
343
- else if (componentName.includes("feature") ||
344
- componentName.includes("card") ||
345
- componentName.includes("showcase") ||
346
- componentName.includes("benefit")) {
347
- if (!organized.features)
348
- organized.features = [];
349
- organized.features.push(component);
350
- }
351
- // Keep other components in their original groups
352
- else {
353
- if (!organized[groupName])
354
- organized[groupName] = [];
355
- organized[groupName].push(component);
356
- }
357
- });
358
- });
359
- return organized;
360
- }
361
- async generateProjectPages(projectName, componentsList, description) {
362
- const projectPath = path_1.default.resolve(projectName);
363
- const { groups = {} } = componentsList;
364
- // Create components showcase page
365
- await fs_1.promises.mkdir(path_1.default.join(projectPath, "src", "app", "components"), {
366
- recursive: true,
367
- });
368
- const showcaseContent = this.generateShowcasePage(groups);
369
- await fs_1.promises.writeFile(path_1.default.join(projectPath, "src", "app", "components", "page.tsx"), showcaseContent, "utf-8");
370
- // Create about page
371
- await fs_1.promises.mkdir(path_1.default.join(projectPath, "src", "app", "about"), {
372
- recursive: true,
373
- });
374
- const aboutContent = this.generateAboutPage(description);
375
- await fs_1.promises.writeFile(path_1.default.join(projectPath, "src", "app", "about", "page.tsx"), aboutContent, "utf-8");
376
- }
377
- generateShowcasePage(groups) {
378
- let imports = "";
379
- let componentSections = "";
380
- Object.entries(groups).forEach(([groupName, components]) => {
381
- components.forEach((component) => {
382
- const componentName = component.name;
383
- const importPath = `@/components/${groupName}/${componentName}`;
384
- imports += `import { ${componentName} } from "${importPath}";\n`;
385
- });
386
- });
387
- Object.entries(groups).forEach(([groupName, components]) => {
388
- if (components.length > 0) {
389
- componentSections += `
390
- <section className="py-16">
391
- <div className="container mx-auto px-4">
392
- <h2 className="text-3xl font-bold mb-8 capitalize">${groupName.replace(/-/g, " ")}</h2>
393
- <div className="grid gap-8">
394
- ${components
395
- .map((component) => `
396
- <div className="border rounded-lg p-6">
397
- <h3 className="text-xl font-semibold mb-4">${component.name}</h3>
398
- <div className="space-y-4">
399
- <${component.name} />
400
- </div>
401
- </div>
402
- `)
403
- .join("")}
404
- </div>
405
- </div>
406
- </section>`;
407
- }
408
- });
409
- return `import { Metadata } from "next";
410
- ${imports}
411
-
412
- export const metadata: Metadata = {
413
- title: "Component Showcase - MyContext Generated App",
414
- description: "Browse all generated components",
415
- };
416
-
417
- export default function ComponentsPage() {
418
- return (
419
- <div className="min-h-screen bg-gradient-to-br from-slate-50 to-slate-100">
420
- <div className="container mx-auto px-4 py-20">
421
- <h1 className="text-4xl font-bold mb-8">Component Showcase</h1>
422
- ${componentSections}
423
- </div>
424
- </div>
425
- );
426
- }`;
427
- }
428
- generateAboutPage(description) {
429
- return `import { Metadata } from "next";
430
-
431
- export const metadata: Metadata = {
432
- title: "About - MyContext Generated App",
433
- description: "Learn more about this generated application",
434
- };
435
-
436
- export default function AboutPage() {
437
- return (
438
- <div className="min-h-screen bg-gradient-to-br from-slate-50 to-slate-100">
439
- <div className="container mx-auto px-4 py-20">
440
- <div className="max-w-4xl mx-auto">
441
- <h1 className="text-4xl font-bold mb-8">About This App</h1>
442
- <div className="prose prose-lg max-w-none">
443
- <p className="text-xl text-slate-600 mb-8">
444
- ${description}
445
- </p>
446
- <div className="bg-white rounded-lg p-8 shadow-sm">
447
- <h2 className="text-2xl font-semibold mb-4">Generated with MyContext</h2>
448
- <p className="text-slate-600 mb-4">
449
- This application was automatically generated using MyContext, an AI-powered
450
- component generation platform that creates complete web applications from
451
- natural language descriptions.
452
- </p>
453
- <div className="grid md:grid-cols-2 gap-6 mt-8">
454
- <div>
455
- <h3 className="text-lg font-medium mb-2">Features</h3>
456
- <ul className="text-slate-600 space-y-1">
457
- <li>• AI-generated components</li>
458
- <li>• Responsive design</li>
459
- <li>• TypeScript support</li>
460
- <li>• Modern UI patterns</li>
461
- </ul>
462
- </div>
463
- <div>
464
- <h3 className="text-lg font-medium mb-2">Technology</h3>
465
- <ul className="text-slate-600 space-y-1">
466
- <li>• Next.js 14</li>
467
- <li>• React 18</li>
468
- <li>• Tailwind CSS</li>
469
- <li>• Shadcn/ui components</li>
470
- </ul>
471
- </div>
472
- </div>
473
- </div>
474
- </div>
475
- </div>
476
- </div>
477
- </div>
478
- );
479
- }`;
480
- }
481
- async analyzeExistingProject() {
482
- const { AnalyzeCommand } = await Promise.resolve().then(() => __importStar(require("./analyze")));
483
- const analyzeCommand = new AnalyzeCommand();
484
- await analyzeCommand.execute(".", {
485
- output: ".mycontext",
486
- generateContext: true,
487
- includeBrand: true,
488
- includeTypes: true,
489
- includeComponents: true,
490
- verbose: false,
491
- });
492
- }
493
- async migrateExistingProject() {
494
- const { MigrateCommand } = await Promise.resolve().then(() => __importStar(require("./migrate")));
495
- const migrateCommand = new MigrateCommand();
496
- await migrateCommand.execute(".", {
497
- all: true,
498
- includeActions: true,
499
- includeHooks: true,
500
- includeContext: true,
501
- includeDocs: true,
502
- verbose: false,
503
- });
504
- }
505
79
  }
506
80
  exports.BuildAppCommand = BuildAppCommand;
507
81
  //# sourceMappingURL=build-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-app.js","sourceRoot":"","sources":["../../src/commands/build-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-app.js","sourceRoot":"","sources":["../../src/commands/build-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ interface CompilePRDOptions {
2
+ projectPath?: string;
3
+ verbose?: boolean;
4
+ force?: boolean;
5
+ }
6
+ export declare class CompilePRDCommand {
7
+ private aiClient;
8
+ constructor();
9
+ execute(options: CompilePRDOptions): Promise<void>;
10
+ private checkContextFiles;
11
+ private readContextFiles;
12
+ private generatePRD;
13
+ private buildPRDPrompt;
14
+ private formatPRDContent;
15
+ private getContextFileDescription;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=compile-prd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-prd.d.ts","sourceRoot":"","sources":["../../src/commands/compile-prd.ts"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAiB;;IAM3B,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyE1C,iBAAiB;YAyBjB,gBAAgB;YAehB,WAAW;IAwBzB,OAAO,CAAC,cAAc;IA+CtB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,yBAAyB;CAUlC"}