mycontext-cli 0.4.20 → 1.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.
Files changed (106) hide show
  1. package/README.md +14 -11
  2. package/dist/agents/implementations/BackendDevAgent.d.ts +39 -0
  3. package/dist/agents/implementations/BackendDevAgent.d.ts.map +1 -0
  4. package/dist/agents/implementations/BackendDevAgent.js +821 -0
  5. package/dist/agents/implementations/BackendDevAgent.js.map +1 -0
  6. package/dist/agents/implementations/CodeGenSubAgent.d.ts +1 -1
  7. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  8. package/dist/agents/implementations/CodeGenSubAgent.js +47 -22
  9. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  10. package/dist/agents/implementations/DocsSubAgent.d.ts +7 -0
  11. package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -1
  12. package/dist/agents/implementations/DocsSubAgent.js +20 -11
  13. package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
  14. package/dist/agents/implementations/EnhancementAgent.d.ts +1 -1
  15. package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
  16. package/dist/agents/implementations/EnhancementAgent.js +17 -12
  17. package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
  18. package/dist/cli.js +210 -39
  19. package/dist/cli.js.map +1 -1
  20. package/dist/commands/analyze.d.ts +52 -0
  21. package/dist/commands/analyze.d.ts.map +1 -0
  22. package/dist/commands/analyze.js +740 -0
  23. package/dist/commands/analyze.js.map +1 -0
  24. package/dist/commands/auth.d.ts +19 -26
  25. package/dist/commands/auth.d.ts.map +1 -1
  26. package/dist/commands/auth.js +187 -180
  27. package/dist/commands/auth.js.map +1 -1
  28. package/dist/commands/build-app.d.ts +33 -0
  29. package/dist/commands/build-app.d.ts.map +1 -0
  30. package/dist/commands/build-app.js +507 -0
  31. package/dist/commands/build-app.js.map +1 -0
  32. package/dist/commands/generate-components.d.ts +2 -0
  33. package/dist/commands/generate-components.d.ts.map +1 -1
  34. package/dist/commands/generate-components.js +96 -49
  35. package/dist/commands/generate-components.js.map +1 -1
  36. package/dist/commands/generate-todos.d.ts +25 -0
  37. package/dist/commands/generate-todos.d.ts.map +1 -0
  38. package/dist/commands/generate-todos.js +249 -0
  39. package/dist/commands/generate-todos.js.map +1 -0
  40. package/dist/commands/generate.d.ts +3 -0
  41. package/dist/commands/generate.d.ts.map +1 -1
  42. package/dist/commands/generate.js +251 -93
  43. package/dist/commands/generate.js.map +1 -1
  44. package/dist/commands/init.d.ts +5 -0
  45. package/dist/commands/init.d.ts.map +1 -1
  46. package/dist/commands/init.js +86 -7
  47. package/dist/commands/init.js.map +1 -1
  48. package/dist/commands/list.d.ts.map +1 -1
  49. package/dist/commands/list.js +10 -7
  50. package/dist/commands/list.js.map +1 -1
  51. package/dist/commands/migrate.d.ts +29 -0
  52. package/dist/commands/migrate.d.ts.map +1 -0
  53. package/dist/commands/migrate.js +485 -0
  54. package/dist/commands/migrate.js.map +1 -0
  55. package/dist/commands/model.d.ts +13 -16
  56. package/dist/commands/model.d.ts.map +1 -1
  57. package/dist/commands/model.js +89 -320
  58. package/dist/commands/model.js.map +1 -1
  59. package/dist/commands/playbooks.d.ts +33 -0
  60. package/dist/commands/playbooks.d.ts.map +1 -0
  61. package/dist/commands/playbooks.js +662 -0
  62. package/dist/commands/playbooks.js.map +1 -0
  63. package/dist/commands/pricing.d.ts +15 -0
  64. package/dist/commands/pricing.d.ts.map +1 -0
  65. package/dist/commands/pricing.js +129 -0
  66. package/dist/commands/pricing.js.map +1 -0
  67. package/dist/commands/promote.d.ts +22 -0
  68. package/dist/commands/promote.d.ts.map +1 -0
  69. package/dist/commands/promote.js +204 -0
  70. package/dist/commands/promote.js.map +1 -0
  71. package/dist/commands/setup.d.ts +5 -18
  72. package/dist/commands/setup.d.ts.map +1 -1
  73. package/dist/commands/setup.js +180 -340
  74. package/dist/commands/setup.js.map +1 -1
  75. package/dist/config/ai-providers.json +81 -40
  76. package/dist/config/api.d.ts +9 -0
  77. package/dist/config/api.d.ts.map +1 -0
  78. package/dist/config/api.js +25 -0
  79. package/dist/config/api.js.map +1 -0
  80. package/dist/config/api.ts +29 -0
  81. package/dist/config/pricing.json +55 -0
  82. package/dist/types/index.d.ts +7 -1
  83. package/dist/types/index.d.ts.map +1 -1
  84. package/dist/utils/apiKeyManager.d.ts.map +1 -1
  85. package/dist/utils/apiKeyManager.js +7 -0
  86. package/dist/utils/apiKeyManager.js.map +1 -1
  87. package/dist/utils/fileSystem.d.ts.map +1 -1
  88. package/dist/utils/fileSystem.js +3 -1
  89. package/dist/utils/fileSystem.js.map +1 -1
  90. package/dist/utils/geminiClient.d.ts +61 -0
  91. package/dist/utils/geminiClient.d.ts.map +1 -0
  92. package/dist/utils/geminiClient.js +173 -0
  93. package/dist/utils/geminiClient.js.map +1 -0
  94. package/dist/utils/hostedApiClient.d.ts +32 -0
  95. package/dist/utils/hostedApiClient.d.ts.map +1 -0
  96. package/dist/utils/hostedApiClient.js +231 -0
  97. package/dist/utils/hostedApiClient.js.map +1 -0
  98. package/dist/utils/hybridAIClient.d.ts +14 -3
  99. package/dist/utils/hybridAIClient.d.ts.map +1 -1
  100. package/dist/utils/hybridAIClient.js +190 -65
  101. package/dist/utils/hybridAIClient.js.map +1 -1
  102. package/dist/utils/qwenClient.d.ts +22 -0
  103. package/dist/utils/qwenClient.d.ts.map +1 -0
  104. package/dist/utils/qwenClient.js +185 -0
  105. package/dist/utils/qwenClient.js.map +1 -0
  106. package/package.json +1 -1
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+ interface BuildAppOptions {
3
+ description: string;
4
+ output?: string;
5
+ framework?: string;
6
+ withTests?: boolean;
7
+ verbose?: boolean;
8
+ existing?: boolean;
9
+ migrate?: boolean;
10
+ }
11
+ export declare class BuildAppCommand {
12
+ private spinner;
13
+ execute(options: BuildAppOptions): Promise<void>;
14
+ private initializeProject;
15
+ private generateContextFiles;
16
+ private validatePRD;
17
+ private generateComponentsList;
18
+ private generateComponents;
19
+ private installDependencies;
20
+ private runLinter;
21
+ private buildProject;
22
+ private generateBackendIntegration;
23
+ private generateAppStructure;
24
+ private generateLandingPage;
25
+ private organizeComponentsForLanding;
26
+ private generateProjectPages;
27
+ private generateShowcasePage;
28
+ private generateAboutPage;
29
+ private analyzeExistingProject;
30
+ private migrateExistingProject;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=build-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-app.d.ts","sourceRoot":"","sources":["../../src/commands/build-app.ts"],"names":[],"mappings":";AAWA,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAA0C;IAEnD,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAuGxC,iBAAiB;YAcjB,oBAAoB;YAapB,WAAW;YAQX,sBAAsB;YAStB,kBAAkB;YAYlB,mBAAmB;YAKnB,SAAS;YAUT,YAAY;YAKZ,0BAA0B;YAsB1B,oBAAoB;IAiClC,OAAO,CAAC,mBAAmB;IAmI3B,OAAO,CAAC,4BAA4B;YA0CtB,oBAAoB;IA+BlC,OAAO,CAAC,oBAAoB;IA4D5B,OAAO,CAAC,iBAAiB;YAsDX,sBAAsB;YActB,sBAAsB;CAarC"}
@@ -0,0 +1,507 @@
1
+ #!/usr/bin/env node
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.BuildAppCommand = void 0;
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const fs_1 = require("fs");
43
+ 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");
49
+ class BuildAppCommand {
50
+ constructor() {
51
+ this.spinner = new spinner_1.EnhancedSpinner("Building app...");
52
+ }
53
+ async execute(options) {
54
+ const { description, output = "mycontext-app", framework = "nextjs", withTests = false, verbose = false, existing = false, migrate = false, } = options;
55
+ console.log(chalk_1.default.blue.bold("🚀 Building Complete App with MyContext\n"));
56
+ console.log(chalk_1.default.gray(`Description: ${description}`));
57
+ console.log(chalk_1.default.gray(`Output: ${output}`));
58
+ console.log(chalk_1.default.gray(`Framework: ${framework}\n`));
59
+ 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");
74
+ }
75
+ }
76
+ 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");
81
+ }
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
+ }
126
+ catch (error) {
127
+ this.spinner.fail("Build failed");
128
+ throw error;
129
+ }
130
+ }
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
+ }
506
+ exports.BuildAppCommand = BuildAppCommand;
507
+ //# sourceMappingURL=build-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-app.js","sourceRoot":"","sources":["../../src/commands/build-app.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,10 @@ interface GenerateComponentsOptions extends CommandOptions {
14
14
  }
15
15
  export declare class GenerateComponentsCommand {
16
16
  private fs;
17
+ private hostedApi;
17
18
  private contextArtifacts;
18
19
  private toKebabCase;
20
+ private hasLocalAIKeys;
19
21
  private printNextStepsAfterComponents;
20
22
  private getComponentBaseName;
21
23
  private getComponentExportName;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-components.d.ts","sourceRoot":"","sources":["../../src/commands/generate-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS1C,UAAU,yBAA0B,SAAQ,cAAc;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,qBAAa,yBAAyB;IACpC,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,gBAAgB,CAYtB;IAGF,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,6BAA6B;IAoBrC,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,sBAAsB;IAIxB,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC;YA6IF,oBAAoB;IA+GlC,OAAO,CAAC,iBAAiB;YAsBX,qBAAqB;YAqJrB,sBAAsB;IAmGpC;;OAEG;YACW,qBAAqB;IA0FnC;;OAEG;YACW,kCAAkC;IA0EhD;;OAEG;YACW,gBAAgB;YAqChB,iBAAiB;IAgJ/B;;OAEG;YACW,+BAA+B;YA6F/B,cAAc;IAgD5B,OAAO,CAAC,uBAAuB;YAiFjB,oBAAoB;IAoBlC;;OAEG;YACW,mBAAmB;YAsEnB,qBAAqB;YAsCrB,cAAc;YAyDd,kBAAkB;YAgClB,mBAAmB;YAoDnB,qBAAqB;IA+InC;;;OAGG;YACW,iBAAiB;IAyF/B,OAAO,CAAC,mBAAmB;YA6Bb,kBAAkB;CA4BjC"}
1
+ {"version":3,"file":"generate-components.d.ts","sourceRoot":"","sources":["../../src/commands/generate-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAU1C,UAAU,yBAA0B,SAAQ,cAAc;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,qBAAa,yBAAyB;IACpC,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,gBAAgB,CAYtB;IAGF,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,6BAA6B;IAoBrC,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,sBAAsB;IAIxB,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC;YA6IF,oBAAoB;IA+GlC,OAAO,CAAC,iBAAiB;YAsBX,qBAAqB;YAqJrB,sBAAsB;IAmGpC;;OAEG;YACW,qBAAqB;IA0FnC;;OAEG;YACW,kCAAkC;IA0EhD;;OAEG;YACW,gBAAgB;YAqChB,iBAAiB;IA4L/B;;OAEG;YACW,+BAA+B;YA6F/B,cAAc;IAgD5B,OAAO,CAAC,uBAAuB;YAiFjB,oBAAoB;IAoBlC;;OAEG;YACW,mBAAmB;YAsEnB,qBAAqB;YAsCrB,cAAc;YAyDd,kBAAkB;YAgClB,mBAAmB;YAoDnB,qBAAqB;IA+InC;;;OAGG;YACW,iBAAiB;IAyF/B,OAAO,CAAC,mBAAmB;YA6Bb,kBAAkB;CA4BjC"}