mycontext-cli 0.4.20 → 1.0.1
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 +14 -11
- package/dist/agents/implementations/BackendDevAgent.d.ts +39 -0
- package/dist/agents/implementations/BackendDevAgent.d.ts.map +1 -0
- package/dist/agents/implementations/BackendDevAgent.js +821 -0
- package/dist/agents/implementations/BackendDevAgent.js.map +1 -0
- package/dist/agents/implementations/CodeGenSubAgent.d.ts +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.js +34 -22
- package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.d.ts +7 -0
- package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.js +20 -11
- package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.d.ts +1 -1
- package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.js +17 -12
- package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
- package/dist/cli.js +191 -39
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +52 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +740 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/auth.d.ts +19 -26
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +187 -180
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/build-app.d.ts +33 -0
- package/dist/commands/build-app.d.ts.map +1 -0
- package/dist/commands/build-app.js +507 -0
- package/dist/commands/build-app.js.map +1 -0
- package/dist/commands/generate-components.d.ts +2 -0
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +95 -49
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +250 -93
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +86 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +10 -7
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/migrate.d.ts +29 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +485 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/model.d.ts +13 -16
- package/dist/commands/model.d.ts.map +1 -1
- package/dist/commands/model.js +86 -320
- package/dist/commands/model.js.map +1 -1
- package/dist/commands/playbooks.d.ts +33 -0
- package/dist/commands/playbooks.d.ts.map +1 -0
- package/dist/commands/playbooks.js +662 -0
- package/dist/commands/playbooks.js.map +1 -0
- package/dist/commands/pricing.d.ts +15 -0
- package/dist/commands/pricing.d.ts.map +1 -0
- package/dist/commands/pricing.js +129 -0
- package/dist/commands/pricing.js.map +1 -0
- package/dist/commands/promote.d.ts +22 -0
- package/dist/commands/promote.d.ts.map +1 -0
- package/dist/commands/promote.js +204 -0
- package/dist/commands/promote.js.map +1 -0
- package/dist/commands/setup.d.ts +5 -18
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +180 -340
- package/dist/commands/setup.js.map +1 -1
- package/dist/config/ai-providers.json +37 -28
- package/dist/config/api.d.ts +9 -0
- package/dist/config/api.d.ts.map +1 -0
- package/dist/config/api.js +25 -0
- package/dist/config/api.js.map +1 -0
- package/dist/config/api.ts +29 -0
- package/dist/config/pricing.json +55 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/apiKeyManager.d.ts.map +1 -1
- package/dist/utils/apiKeyManager.js +7 -0
- package/dist/utils/apiKeyManager.js.map +1 -1
- package/dist/utils/fileSystem.d.ts.map +1 -1
- package/dist/utils/fileSystem.js +3 -1
- package/dist/utils/fileSystem.js.map +1 -1
- package/dist/utils/hostedApiClient.d.ts +32 -0
- package/dist/utils/hostedApiClient.d.ts.map +1 -0
- package/dist/utils/hostedApiClient.js +231 -0
- package/dist/utils/hostedApiClient.js.map +1 -0
- package/dist/utils/hybridAIClient.d.ts +7 -3
- package/dist/utils/hybridAIClient.d.ts.map +1 -1
- package/dist/utils/hybridAIClient.js +103 -27
- package/dist/utils/hybridAIClient.js.map +1 -1
- package/dist/utils/qwenClient.d.ts +22 -0
- package/dist/utils/qwenClient.d.ts.map +1 -0
- package/dist/utils/qwenClient.js +180 -0
- package/dist/utils/qwenClient.js.map +1 -0
- 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;
|
|
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;IAWtB,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"}
|