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.
- 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 +47 -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 +210 -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 +96 -49
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate-todos.d.ts +25 -0
- package/dist/commands/generate-todos.d.ts.map +1 -0
- package/dist/commands/generate-todos.js +249 -0
- package/dist/commands/generate-todos.js.map +1 -0
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +251 -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 +89 -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 +81 -40
- 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 +7 -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/geminiClient.d.ts +61 -0
- package/dist/utils/geminiClient.d.ts.map +1 -0
- package/dist/utils/geminiClient.js +173 -0
- package/dist/utils/geminiClient.js.map +1 -0
- 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 +14 -3
- package/dist/utils/hybridAIClient.d.ts.map +1 -1
- package/dist/utils/hybridAIClient.js +190 -65
- 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 +185 -0
- package/dist/utils/qwenClient.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.MigrateCommand = void 0;
|
|
40
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
+
const path_1 = __importDefault(require("path"));
|
|
42
|
+
const fs_1 = require("fs");
|
|
43
|
+
const fsExtra = __importStar(require("fs-extra"));
|
|
44
|
+
const spinner_1 = require("../utils/spinner");
|
|
45
|
+
const hybridAIClient_1 = require("../utils/hybridAIClient");
|
|
46
|
+
class MigrateCommand {
|
|
47
|
+
constructor() {
|
|
48
|
+
this.spinner = new spinner_1.EnhancedSpinner("Migrating project...");
|
|
49
|
+
this.ai = new hybridAIClient_1.HybridAIClient();
|
|
50
|
+
}
|
|
51
|
+
async execute(target, options) {
|
|
52
|
+
const { component, group, all = false, includeActions = true, includeHooks = true, includeContext = true, includeDocs = true, verbose = false, } = options;
|
|
53
|
+
console.log(chalk_1.default.blue.bold("š Migrating Project to MyContext Structure\n"));
|
|
54
|
+
try {
|
|
55
|
+
if (component) {
|
|
56
|
+
await this.migrateComponent(component, {
|
|
57
|
+
includeActions,
|
|
58
|
+
includeHooks,
|
|
59
|
+
includeContext,
|
|
60
|
+
includeDocs,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
else if (group) {
|
|
64
|
+
await this.migrateGroup(group, {
|
|
65
|
+
includeActions,
|
|
66
|
+
includeHooks,
|
|
67
|
+
includeContext,
|
|
68
|
+
includeDocs,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else if (all) {
|
|
72
|
+
await this.migrateAll({
|
|
73
|
+
includeActions,
|
|
74
|
+
includeHooks,
|
|
75
|
+
includeContext,
|
|
76
|
+
includeDocs,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
console.log(chalk_1.default.yellow("Please specify --component, --group, or --all"));
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
console.log(chalk_1.default.green.bold("\nā
Migration completed successfully!"));
|
|
84
|
+
this.printNextSteps();
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
this.spinner.fail("Migration failed");
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async migrateComponent(componentName, options) {
|
|
92
|
+
this.spinner.start().updateText(`Migrating component: ${componentName}`);
|
|
93
|
+
const componentsDir = path_1.default.join(process.cwd(), "src", "components");
|
|
94
|
+
const componentPath = await this.findComponentPath(componentsDir, componentName);
|
|
95
|
+
if (!componentPath) {
|
|
96
|
+
throw new Error(`Component ${componentName} not found`);
|
|
97
|
+
}
|
|
98
|
+
const mycontextDir = path_1.default.join(componentPath, ".mycontext");
|
|
99
|
+
if (await fsExtra.pathExists(mycontextDir)) {
|
|
100
|
+
console.log(chalk_1.default.yellow(`Component ${componentName} already has .mycontext directory`));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
await fsExtra.ensureDir(mycontextDir);
|
|
104
|
+
const migration = await this.createComponentContext(componentPath, componentName, "components", options);
|
|
105
|
+
this.spinner.succeed(`Migrated component: ${componentName}`);
|
|
106
|
+
if (migration.createdFiles.length > 0) {
|
|
107
|
+
console.log(chalk_1.default.gray(` Created: ${migration.createdFiles.join(", ")}`));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async migrateGroup(groupName, options) {
|
|
111
|
+
this.spinner.start().updateText(`Migrating group: ${groupName}`);
|
|
112
|
+
const groupDir = path_1.default.join(process.cwd(), "src", "components", groupName);
|
|
113
|
+
if (!(await fsExtra.pathExists(groupDir))) {
|
|
114
|
+
throw new Error(`Group ${groupName} not found`);
|
|
115
|
+
}
|
|
116
|
+
const components = await fs_1.promises.readdir(groupDir);
|
|
117
|
+
const componentDirs = components.filter(async (item) => {
|
|
118
|
+
const itemPath = path_1.default.join(groupDir, item);
|
|
119
|
+
const stat = await fs_1.promises.stat(itemPath);
|
|
120
|
+
return stat.isDirectory() && !item.startsWith(".");
|
|
121
|
+
});
|
|
122
|
+
const migrations = [];
|
|
123
|
+
for (const componentDir of componentDirs) {
|
|
124
|
+
const componentPath = path_1.default.join(groupDir, componentDir);
|
|
125
|
+
const mycontextDir = path_1.default.join(componentPath, ".mycontext");
|
|
126
|
+
if (!(await fsExtra.pathExists(mycontextDir))) {
|
|
127
|
+
await fsExtra.ensureDir(mycontextDir);
|
|
128
|
+
const migration = await this.createComponentContext(componentPath, componentDir, groupName, options);
|
|
129
|
+
migrations.push(migration);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
this.spinner.succeed(`Migrated group: ${groupName}`);
|
|
133
|
+
migrations.forEach((migration) => {
|
|
134
|
+
if (migration.createdFiles.length > 0) {
|
|
135
|
+
console.log(chalk_1.default.gray(` ${migration.name}: ${migration.createdFiles.join(", ")}`));
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
async migrateAll(options) {
|
|
140
|
+
this.spinner.start().updateText("Migrating all components");
|
|
141
|
+
const componentsDir = path_1.default.join(process.cwd(), "src", "components");
|
|
142
|
+
if (!(await fsExtra.pathExists(componentsDir))) {
|
|
143
|
+
throw new Error("Components directory not found");
|
|
144
|
+
}
|
|
145
|
+
const groups = await fs_1.promises.readdir(componentsDir);
|
|
146
|
+
const migrations = [];
|
|
147
|
+
for (const group of groups) {
|
|
148
|
+
const groupPath = path_1.default.join(componentsDir, group);
|
|
149
|
+
const stat = await fs_1.promises.stat(groupPath);
|
|
150
|
+
if (stat.isDirectory()) {
|
|
151
|
+
const groupMigrations = await this.migrateGroup(group, options);
|
|
152
|
+
// Note: migrateGroup doesn't return migrations, we need to track them differently
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
this.spinner.succeed("Migrated all components");
|
|
156
|
+
}
|
|
157
|
+
async findComponentPath(componentsDir, componentName) {
|
|
158
|
+
const groups = await fs_1.promises.readdir(componentsDir);
|
|
159
|
+
for (const group of groups) {
|
|
160
|
+
const groupPath = path_1.default.join(componentsDir, group);
|
|
161
|
+
const stat = await fs_1.promises.stat(groupPath);
|
|
162
|
+
if (stat.isDirectory()) {
|
|
163
|
+
const componentPath = path_1.default.join(groupPath, componentName);
|
|
164
|
+
if (await fsExtra.pathExists(componentPath)) {
|
|
165
|
+
return componentPath;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
async createComponentContext(componentPath, componentName, groupName, options) {
|
|
172
|
+
const mycontextDir = path_1.default.join(componentPath, ".mycontext");
|
|
173
|
+
const createdFiles = [];
|
|
174
|
+
// Create actions.ts
|
|
175
|
+
if (options.includeActions) {
|
|
176
|
+
const actionsContent = await this.generateActionsContent(componentName, groupName);
|
|
177
|
+
await fs_1.promises.writeFile(path_1.default.join(mycontextDir, "actions.ts"), actionsContent);
|
|
178
|
+
createdFiles.push("actions.ts");
|
|
179
|
+
}
|
|
180
|
+
// Create hooks.ts
|
|
181
|
+
if (options.includeHooks) {
|
|
182
|
+
const hooksContent = await this.generateHooksContent(componentName, groupName);
|
|
183
|
+
await fs_1.promises.writeFile(path_1.default.join(mycontextDir, "hooks.ts"), hooksContent);
|
|
184
|
+
createdFiles.push("hooks.ts");
|
|
185
|
+
}
|
|
186
|
+
// Create context.ts
|
|
187
|
+
if (options.includeContext) {
|
|
188
|
+
const contextContent = await this.generateContextContent(componentName, groupName);
|
|
189
|
+
await fs_1.promises.writeFile(path_1.default.join(mycontextDir, "context.ts"), contextContent);
|
|
190
|
+
createdFiles.push("context.ts");
|
|
191
|
+
}
|
|
192
|
+
// Create README.md
|
|
193
|
+
if (options.includeDocs) {
|
|
194
|
+
const docsContent = await this.generateDocsContent(componentName, groupName);
|
|
195
|
+
await fs_1.promises.writeFile(path_1.default.join(mycontextDir, "README.md"), docsContent);
|
|
196
|
+
createdFiles.push("README.md");
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
name: componentName,
|
|
200
|
+
path: componentPath,
|
|
201
|
+
group: groupName,
|
|
202
|
+
hasMycontext: true,
|
|
203
|
+
createdFiles,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
async generateActionsContent(componentName, groupName) {
|
|
207
|
+
const prompt = `Generate server actions for a ${componentName} component in the ${groupName} group.
|
|
208
|
+
|
|
209
|
+
Create TypeScript server actions that would be useful for this component. Include:
|
|
210
|
+
- CRUD operations if applicable
|
|
211
|
+
- Form handling actions
|
|
212
|
+
- Data fetching actions
|
|
213
|
+
- Validation functions
|
|
214
|
+
|
|
215
|
+
Use Next.js server actions pattern with 'use server' directive.
|
|
216
|
+
Export functions that can be imported and used in the component.`;
|
|
217
|
+
try {
|
|
218
|
+
const response = await this.ai.generateText(prompt);
|
|
219
|
+
return `// Server actions for ${componentName} component
|
|
220
|
+
// Generated by MyContext CLI
|
|
221
|
+
|
|
222
|
+
"use server";
|
|
223
|
+
|
|
224
|
+
${response}
|
|
225
|
+
|
|
226
|
+
// Example usage in component:
|
|
227
|
+
// import { create${componentName}, update${componentName} } from './.mycontext/actions';
|
|
228
|
+
`;
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
console.warn(`Failed to generate actions for ${componentName}, using template`);
|
|
232
|
+
return `// Server actions for ${componentName} component
|
|
233
|
+
// Generated by MyContext CLI
|
|
234
|
+
|
|
235
|
+
"use server";
|
|
236
|
+
|
|
237
|
+
// TODO: Implement server actions for ${componentName}
|
|
238
|
+
export async function create${componentName}(data: any) {
|
|
239
|
+
// Implementation here
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
export async function update${componentName}(id: string, data: any) {
|
|
243
|
+
// Implementation here
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export async function delete${componentName}(id: string) {
|
|
247
|
+
// Implementation here
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export async function get${componentName}(id: string) {
|
|
251
|
+
// Implementation here
|
|
252
|
+
}
|
|
253
|
+
`;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
async generateHooksContent(componentName, groupName) {
|
|
257
|
+
const prompt = `Generate custom React hooks for a ${componentName} component in the ${groupName} group.
|
|
258
|
+
|
|
259
|
+
Create TypeScript custom hooks that would be useful for this component. Include:
|
|
260
|
+
- State management hooks
|
|
261
|
+
- Data fetching hooks
|
|
262
|
+
- Form handling hooks
|
|
263
|
+
- Event handling hooks
|
|
264
|
+
|
|
265
|
+
Use React hooks patterns and TypeScript.
|
|
266
|
+
Export hooks that can be imported and used in the component.`;
|
|
267
|
+
try {
|
|
268
|
+
const response = await this.ai.generateText(prompt);
|
|
269
|
+
return `// Custom hooks for ${componentName} component
|
|
270
|
+
// Generated by MyContext CLI
|
|
271
|
+
|
|
272
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
273
|
+
|
|
274
|
+
${response}
|
|
275
|
+
|
|
276
|
+
// Example usage in component:
|
|
277
|
+
// import { use${componentName}State, use${componentName}Data } from './.mycontext/hooks';
|
|
278
|
+
`;
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
console.warn(`Failed to generate hooks for ${componentName}, using template`);
|
|
282
|
+
return `// Custom hooks for ${componentName} component
|
|
283
|
+
// Generated by MyContext CLI
|
|
284
|
+
|
|
285
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
286
|
+
|
|
287
|
+
export function use${componentName}State(initialState: any = {}) {
|
|
288
|
+
const [state, setState] = useState(initialState);
|
|
289
|
+
|
|
290
|
+
const updateState = useCallback((updates: Partial<typeof initialState>) => {
|
|
291
|
+
setState(prev => ({ ...prev, ...updates }));
|
|
292
|
+
}, []);
|
|
293
|
+
|
|
294
|
+
return { state, setState, updateState };
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export function use${componentName}Data() {
|
|
298
|
+
const [data, setData] = useState(null);
|
|
299
|
+
const [loading, setLoading] = useState(false);
|
|
300
|
+
const [error, setError] = useState(null);
|
|
301
|
+
|
|
302
|
+
const fetchData = useCallback(async () => {
|
|
303
|
+
setLoading(true);
|
|
304
|
+
try {
|
|
305
|
+
// Implementation here
|
|
306
|
+
setData(null);
|
|
307
|
+
} catch (err) {
|
|
308
|
+
setError(err);
|
|
309
|
+
} finally {
|
|
310
|
+
setLoading(false);
|
|
311
|
+
}
|
|
312
|
+
}, []);
|
|
313
|
+
|
|
314
|
+
useEffect(() => {
|
|
315
|
+
fetchData();
|
|
316
|
+
}, [fetchData]);
|
|
317
|
+
|
|
318
|
+
return { data, loading, error, refetch: fetchData };
|
|
319
|
+
}
|
|
320
|
+
`;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
async generateContextContent(componentName, groupName) {
|
|
324
|
+
const prompt = `Generate React context for a ${componentName} component in the ${groupName} group.
|
|
325
|
+
|
|
326
|
+
Create TypeScript React context that would be useful for this component. Include:
|
|
327
|
+
- Context provider component
|
|
328
|
+
- Custom hook for consuming context
|
|
329
|
+
- Type definitions for context value
|
|
330
|
+
- Default values
|
|
331
|
+
|
|
332
|
+
Use React context patterns and TypeScript.
|
|
333
|
+
Export context and hooks that can be imported and used in the component.`;
|
|
334
|
+
try {
|
|
335
|
+
const response = await this.ai.generateText(prompt);
|
|
336
|
+
return `// Context for ${componentName} component
|
|
337
|
+
// Generated by MyContext CLI
|
|
338
|
+
|
|
339
|
+
import { createContext, useContext, ReactNode } from 'react';
|
|
340
|
+
|
|
341
|
+
${response}
|
|
342
|
+
|
|
343
|
+
// Example usage in component:
|
|
344
|
+
// import { ${componentName}Provider, use${componentName}Context } from './.mycontext/context';
|
|
345
|
+
`;
|
|
346
|
+
}
|
|
347
|
+
catch (error) {
|
|
348
|
+
console.warn(`Failed to generate context for ${componentName}, using template`);
|
|
349
|
+
return `// Context for ${componentName} component
|
|
350
|
+
// Generated by MyContext CLI
|
|
351
|
+
|
|
352
|
+
import { createContext, useContext, ReactNode } from 'react';
|
|
353
|
+
|
|
354
|
+
interface ${componentName}ContextValue {
|
|
355
|
+
// Define context value type here
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
const ${componentName}Context = createContext<${componentName}ContextValue | undefined>(undefined);
|
|
359
|
+
|
|
360
|
+
export function ${componentName}Provider({ children }: { children: ReactNode }) {
|
|
361
|
+
const value: ${componentName}ContextValue = {
|
|
362
|
+
// Provide context value here
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
return (
|
|
366
|
+
<${componentName}Context.Provider value={value}>
|
|
367
|
+
{children}
|
|
368
|
+
</${componentName}Context.Provider>
|
|
369
|
+
);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
export function use${componentName}Context() {
|
|
373
|
+
const context = useContext(${componentName}Context);
|
|
374
|
+
if (context === undefined) {
|
|
375
|
+
throw new Error('use${componentName}Context must be used within a ${componentName}Provider');
|
|
376
|
+
}
|
|
377
|
+
return context;
|
|
378
|
+
}
|
|
379
|
+
`;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
async generateDocsContent(componentName, groupName) {
|
|
383
|
+
const prompt = `Generate documentation for a ${componentName} component in the ${groupName} group.
|
|
384
|
+
|
|
385
|
+
Create comprehensive documentation that includes:
|
|
386
|
+
- Component description and purpose
|
|
387
|
+
- Props interface and usage examples
|
|
388
|
+
- Usage examples with code snippets
|
|
389
|
+
- Integration with actions, hooks, and context
|
|
390
|
+
- Best practices and tips
|
|
391
|
+
|
|
392
|
+
Use Markdown format with clear sections and code examples.`;
|
|
393
|
+
try {
|
|
394
|
+
const response = await this.ai.generateText(prompt);
|
|
395
|
+
return `# ${componentName} Component
|
|
396
|
+
|
|
397
|
+
${response}
|
|
398
|
+
|
|
399
|
+
## Files in this directory
|
|
400
|
+
|
|
401
|
+
- \`actions.ts\` - Server actions for ${componentName}
|
|
402
|
+
- \`hooks.ts\` - Custom React hooks for ${componentName}
|
|
403
|
+
- \`context.ts\` - React context for ${componentName}
|
|
404
|
+
- \`README.md\` - This documentation file
|
|
405
|
+
|
|
406
|
+
## Usage
|
|
407
|
+
|
|
408
|
+
\`\`\`tsx
|
|
409
|
+
import { ${componentName} } from './${componentName}';
|
|
410
|
+
import { use${componentName}State } from './.mycontext/hooks';
|
|
411
|
+
import { create${componentName} } from './.mycontext/actions';
|
|
412
|
+
|
|
413
|
+
export function MyPage() {
|
|
414
|
+
const { state, updateState } = use${componentName}State();
|
|
415
|
+
|
|
416
|
+
return (
|
|
417
|
+
<${componentName}
|
|
418
|
+
// props here
|
|
419
|
+
/>
|
|
420
|
+
);
|
|
421
|
+
}
|
|
422
|
+
\`\`\`
|
|
423
|
+
`;
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
console.warn(`Failed to generate docs for ${componentName}, using template`);
|
|
427
|
+
return `# ${componentName} Component
|
|
428
|
+
|
|
429
|
+
A ${componentName} component in the ${groupName} group.
|
|
430
|
+
|
|
431
|
+
## Description
|
|
432
|
+
|
|
433
|
+
TODO: Add component description
|
|
434
|
+
|
|
435
|
+
## Props
|
|
436
|
+
|
|
437
|
+
\`\`\`tsx
|
|
438
|
+
interface ${componentName}Props {
|
|
439
|
+
// Define props here
|
|
440
|
+
}
|
|
441
|
+
\`\`\`
|
|
442
|
+
|
|
443
|
+
## Usage
|
|
444
|
+
|
|
445
|
+
\`\`\`tsx
|
|
446
|
+
import { ${componentName} } from './${componentName}';
|
|
447
|
+
|
|
448
|
+
export function MyPage() {
|
|
449
|
+
return (
|
|
450
|
+
<${componentName}
|
|
451
|
+
// props here
|
|
452
|
+
/>
|
|
453
|
+
);
|
|
454
|
+
}
|
|
455
|
+
\`\`\`
|
|
456
|
+
|
|
457
|
+
## Files in this directory
|
|
458
|
+
|
|
459
|
+
- \`actions.ts\` - Server actions for ${componentName}
|
|
460
|
+
- \`hooks.ts\` - Custom React hooks for ${componentName}
|
|
461
|
+
- \`context.ts\` - React context for ${componentName}
|
|
462
|
+
- \`README.md\` - This documentation file
|
|
463
|
+
|
|
464
|
+
## Development
|
|
465
|
+
|
|
466
|
+
This component has been migrated to MyContext structure. You can:
|
|
467
|
+
|
|
468
|
+
1. Use the generated actions, hooks, and context
|
|
469
|
+
2. Customize them for your specific needs
|
|
470
|
+
3. Add more functionality as needed
|
|
471
|
+
4. Use \`mycontext promote\` to move to production when ready
|
|
472
|
+
`;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
printNextSteps() {
|
|
476
|
+
console.log(chalk_1.default.yellow("\nš Next Steps:"));
|
|
477
|
+
console.log(chalk_1.default.gray("1. Review the generated .mycontext directories"));
|
|
478
|
+
console.log(chalk_1.default.gray("2. Customize the actions, hooks, and context as needed"));
|
|
479
|
+
console.log(chalk_1.default.gray("3. Test the components with their new context files"));
|
|
480
|
+
console.log(chalk_1.default.gray("4. Use 'mycontext promote' to move to production when ready"));
|
|
481
|
+
console.log(chalk_1.default.gray("\nš” Tip: Each component now has its own development context!"));
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
exports.MigrateCommand = MigrateCommand;
|
|
485
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/model.d.ts
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
1
|
import { CommandOptions } from "../types";
|
|
3
2
|
interface ModelOptions extends CommandOptions {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
last?: string;
|
|
8
|
-
prompt?: string;
|
|
3
|
+
test?: boolean;
|
|
4
|
+
status?: boolean;
|
|
5
|
+
list?: boolean;
|
|
9
6
|
backup?: boolean;
|
|
7
|
+
restore?: boolean;
|
|
8
|
+
update?: boolean;
|
|
9
|
+
remove?: boolean;
|
|
10
|
+
info?: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare class ModelCommand {
|
|
12
|
-
private
|
|
13
|
-
private configPath;
|
|
13
|
+
private aiClient;
|
|
14
14
|
constructor();
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
private validateGeneratedComponent;
|
|
21
|
-
private showDetailedStatus;
|
|
15
|
+
execute(options: ModelOptions): Promise<void>;
|
|
16
|
+
private showStatus;
|
|
17
|
+
private testModel;
|
|
18
|
+
private listModels;
|
|
19
|
+
private showInfo;
|
|
22
20
|
}
|
|
23
|
-
export declare function registerModelCommands(program: Command): void;
|
|
24
21
|
export {};
|
|
25
22
|
//# sourceMappingURL=model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/commands/model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/commands/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK1C,UAAU,YAAa,SAAQ,cAAc;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAiB;;IAM3B,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAerC,UAAU;YAyCV,SAAS;YA0BT,UAAU;YA0BV,QAAQ;CAgCvB"}
|