mycontext-cli 0.2.2 ā 0.2.4
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/dist/agents/implementations/CodeGenSubAgent.d.ts +0 -7
- package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/CodeGenSubAgent.js +0 -7
- package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.d.ts +8 -6
- package/dist/agents/implementations/DocsSubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/DocsSubAgent.js +74 -25
- package/dist/agents/implementations/DocsSubAgent.js.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.d.ts +2 -0
- package/dist/agents/implementations/EnhancementAgent.d.ts.map +1 -1
- package/dist/agents/implementations/EnhancementAgent.js +13 -4
- package/dist/agents/implementations/EnhancementAgent.js.map +1 -1
- package/dist/agents/implementations/QASubAgent.d.ts +9 -0
- package/dist/agents/implementations/QASubAgent.d.ts.map +1 -1
- package/dist/agents/implementations/QASubAgent.js +103 -22
- package/dist/agents/implementations/QASubAgent.js.map +1 -1
- package/dist/cli.js +11 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +3 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/enhance.d.ts +40 -0
- package/dist/commands/enhance.d.ts.map +1 -1
- package/dist/commands/enhance.js +192 -1
- package/dist/commands/enhance.js.map +1 -1
- package/dist/commands/generate-components.d.ts +1 -0
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +61 -22
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate.d.ts +5 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +369 -15
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/refine.d.ts +94 -0
- package/dist/commands/refine.d.ts.map +1 -0
- package/dist/commands/refine.js +492 -0
- package/dist/commands/refine.js.map +1 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +45 -16
- package/dist/commands/setup.js.map +1 -1
- package/dist/config/ai-providers.json +56 -0
- package/dist/config/dependencies.json +6 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/huggingFaceClient.d.ts +44 -0
- package/dist/utils/huggingFaceClient.d.ts.map +1 -0
- package/dist/utils/huggingFaceClient.js +169 -0
- package/dist/utils/huggingFaceClient.js.map +1 -0
- package/dist/utils/hybridAIClient.d.ts +74 -0
- package/dist/utils/hybridAIClient.d.ts.map +1 -0
- package/dist/utils/hybridAIClient.js +257 -0
- package/dist/utils/hybridAIClient.js.map +1 -0
- package/dist/utils/ollamaClient.d.ts +5 -12
- package/dist/utils/ollamaClient.d.ts.map +1 -1
- package/dist/utils/ollamaClient.js +118 -107
- package/dist/utils/ollamaClient.js.map +1 -1
- package/package.json +3 -1
- package/dist/cli/src/config/dependencies.json +0 -180
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAE1B,gDAAwB;AACxB,8CAAmD;AACnD,oDAAwD;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/list.js
CHANGED
|
@@ -84,7 +84,7 @@ class ListCommand {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
async listComponents(userId, options, spinner) {
|
|
87
|
-
const API_BASE = process.env.MYCONTEXT_API_URL || "
|
|
87
|
+
const API_BASE = process.env.MYCONTEXT_API_URL || "https://mycontext.fbien.com";
|
|
88
88
|
spinner.updateText("Loading your components...");
|
|
89
89
|
try {
|
|
90
90
|
// Build query parameters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAmD;AACnD,kDAA0B;AAS1B,MAAa,WAAW;IACtB,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAoB;QAChD,MAAM,OAAO,GAAG,IAAI,yBAAe,CAAC,uBAAuB,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;YAEtC,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAChE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,gBAAgB;YAChB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEjE,yBAAyB;YACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;YAExD,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,YAAY,CAAC;gBAClB,KAAK,eAAe;oBAClB,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC7D,MAAM;gBACR,KAAK,UAAU;oBACb,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBACjC,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC9B,MAAM;gBACR,KAAK,KAAK;oBACR,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBACtD,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,MAAc,EACd,OAAoB,EACpB,OAAwB;QAExB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
export interface RefinementOptions {
|
|
4
|
+
prompt: string;
|
|
5
|
+
temperature?: number;
|
|
6
|
+
maxTokens?: number;
|
|
7
|
+
verbose?: boolean;
|
|
8
|
+
debug?: boolean;
|
|
9
|
+
output?: string;
|
|
10
|
+
interactive?: boolean;
|
|
11
|
+
outputFormat?: "structured" | "diff" | "preview" | "apply";
|
|
12
|
+
showChanges?: boolean;
|
|
13
|
+
preserveHistory?: boolean;
|
|
14
|
+
rollback?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class RefineCommand {
|
|
17
|
+
private enhancementAgent;
|
|
18
|
+
constructor();
|
|
19
|
+
execute(componentPath: string, options: RefinementOptions): Promise<any>;
|
|
20
|
+
/**
|
|
21
|
+
* Get refinement prompt from options or user input
|
|
22
|
+
*/
|
|
23
|
+
private getRefinementPrompt;
|
|
24
|
+
/**
|
|
25
|
+
* Generate fallback enhancement when AI times out
|
|
26
|
+
*/
|
|
27
|
+
private generateFallbackEnhancement;
|
|
28
|
+
/**
|
|
29
|
+
* Extract design context from component code
|
|
30
|
+
*/
|
|
31
|
+
private extractDesignContext;
|
|
32
|
+
/**
|
|
33
|
+
* Extract interaction patterns from component
|
|
34
|
+
*/
|
|
35
|
+
private extractInteractions;
|
|
36
|
+
/**
|
|
37
|
+
* Generate refinement output based on format
|
|
38
|
+
*/
|
|
39
|
+
private generateRefinementOutput;
|
|
40
|
+
/**
|
|
41
|
+
* Generate diff output for side-by-side comparison
|
|
42
|
+
*/
|
|
43
|
+
private generateDiffOutput;
|
|
44
|
+
/**
|
|
45
|
+
* Generate preview output for component rendering
|
|
46
|
+
*/
|
|
47
|
+
private generatePreviewOutput;
|
|
48
|
+
/**
|
|
49
|
+
* Generate apply output for immediate application
|
|
50
|
+
*/
|
|
51
|
+
private generateApplyOutput;
|
|
52
|
+
/**
|
|
53
|
+
* Generate unified diff format
|
|
54
|
+
*/
|
|
55
|
+
private generateUnifiedDiff;
|
|
56
|
+
/**
|
|
57
|
+
* Generate side-by-side diff format
|
|
58
|
+
*/
|
|
59
|
+
private generateSideBySideDiff;
|
|
60
|
+
/**
|
|
61
|
+
* Check if component can be rendered
|
|
62
|
+
*/
|
|
63
|
+
private canRenderComponent;
|
|
64
|
+
/**
|
|
65
|
+
* Extract component dependencies
|
|
66
|
+
*/
|
|
67
|
+
private extractDependencies;
|
|
68
|
+
/**
|
|
69
|
+
* Extract component props interface
|
|
70
|
+
*/
|
|
71
|
+
private extractComponentProps;
|
|
72
|
+
/**
|
|
73
|
+
* Extract render warnings
|
|
74
|
+
*/
|
|
75
|
+
private extractRenderWarnings;
|
|
76
|
+
/**
|
|
77
|
+
* Preserve component history for rollback
|
|
78
|
+
*/
|
|
79
|
+
private preserveComponentHistory;
|
|
80
|
+
/**
|
|
81
|
+
* Handle rollback to previous version
|
|
82
|
+
*/
|
|
83
|
+
private handleRollback;
|
|
84
|
+
/**
|
|
85
|
+
* Apply refinement changes to file
|
|
86
|
+
*/
|
|
87
|
+
private applyRefinement;
|
|
88
|
+
/**
|
|
89
|
+
* Display refinement results for CLI
|
|
90
|
+
*/
|
|
91
|
+
private displayRefinementResults;
|
|
92
|
+
}
|
|
93
|
+
export declare const refine: Command;
|
|
94
|
+
//# sourceMappingURL=refine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refine.d.ts","sourceRoot":"","sources":["../../src/commands/refine.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,gBAAgB,CAAmB;;IAMrC,OAAO,CACX,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,GAAG,CAAC;IAqHf;;OAEG;YACW,mBAAmB;IAwBjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAkCnC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8ChC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;YACW,wBAAwB;IAgBtC;;OAEG;YACW,cAAc;IA4C5B;;OAEG;YACW,eAAe;IAkB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAwBjC;AAKD,eAAO,MAAM,MAAM,SAsCf,CAAC"}
|
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.refine = exports.RefineCommand = void 0;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const spinner_1 = require("../utils/spinner");
|
|
13
|
+
const EnhancementAgent_1 = require("../agents/implementations/EnhancementAgent");
|
|
14
|
+
class RefineCommand {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.enhancementAgent = new EnhancementAgent_1.EnhancementAgent();
|
|
17
|
+
}
|
|
18
|
+
async execute(componentPath, options) {
|
|
19
|
+
const spinner = new spinner_1.EnhancedSpinner("Initializing refinement...");
|
|
20
|
+
try {
|
|
21
|
+
spinner.start();
|
|
22
|
+
// Validate component path
|
|
23
|
+
if (!componentPath) {
|
|
24
|
+
throw new Error("Component path is required");
|
|
25
|
+
}
|
|
26
|
+
// Check if component file exists
|
|
27
|
+
const fullPath = path_1.default.resolve(componentPath);
|
|
28
|
+
if (!(await fs_extra_1.default.pathExists(fullPath))) {
|
|
29
|
+
throw new Error(`Component file not found: ${componentPath}`);
|
|
30
|
+
}
|
|
31
|
+
// Check if it's a React component
|
|
32
|
+
if (!fullPath.endsWith(".tsx") && !fullPath.endsWith(".jsx")) {
|
|
33
|
+
throw new Error("Target must be a React component file (.tsx/.jsx)");
|
|
34
|
+
}
|
|
35
|
+
spinner.updateText("Reading component file...");
|
|
36
|
+
const componentCode = await fs_extra_1.default.readFile(fullPath, "utf-8");
|
|
37
|
+
const componentName = path_1.default.basename(fullPath, path_1.default.extname(fullPath));
|
|
38
|
+
// Get refinement prompt
|
|
39
|
+
const prompt = await this.getRefinementPrompt(options);
|
|
40
|
+
spinner.updateText("Refining component...");
|
|
41
|
+
// Run refinement with fallback
|
|
42
|
+
let result;
|
|
43
|
+
try {
|
|
44
|
+
result = await this.enhancementAgent.run({
|
|
45
|
+
currentComponent: componentCode,
|
|
46
|
+
userPrompt: prompt,
|
|
47
|
+
designContext: this.extractDesignContext(componentCode),
|
|
48
|
+
constraints: {
|
|
49
|
+
maxDependencies: 5,
|
|
50
|
+
targetFramework: "react",
|
|
51
|
+
uiLibrary: "shadcn",
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
if (error.message.includes("timed out")) {
|
|
57
|
+
console.log(chalk_1.default.yellow("ā ļø AI generation timed out, using fallback enhancement..."));
|
|
58
|
+
// Fallback: Simple component improvements without AI
|
|
59
|
+
result = {
|
|
60
|
+
enhancedComponent: this.generateFallbackEnhancement(componentCode, prompt),
|
|
61
|
+
originalComponent: componentCode,
|
|
62
|
+
designTokens: { colors: {}, spacing: {}, typography: {} },
|
|
63
|
+
changes: { added: [], modified: [], removed: [] },
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Handle rollback if requested
|
|
71
|
+
if (options.rollback) {
|
|
72
|
+
return await this.handleRollback(fullPath, componentName, spinner);
|
|
73
|
+
}
|
|
74
|
+
// Preserve history if requested
|
|
75
|
+
if (options.preserveHistory) {
|
|
76
|
+
await this.preserveComponentHistory(fullPath, componentCode);
|
|
77
|
+
}
|
|
78
|
+
// Generate output based on format
|
|
79
|
+
const output = this.generateRefinementOutput(result, componentName, options);
|
|
80
|
+
// Apply changes if requested
|
|
81
|
+
if (options.outputFormat === "apply") {
|
|
82
|
+
await this.applyRefinement(fullPath, result.enhancedComponent, spinner);
|
|
83
|
+
}
|
|
84
|
+
spinner.succeed("Refinement completed successfully!");
|
|
85
|
+
// Return structured output for VS Code extension
|
|
86
|
+
if (options.interactive || options.outputFormat !== "structured") {
|
|
87
|
+
return output;
|
|
88
|
+
}
|
|
89
|
+
// Display results for CLI
|
|
90
|
+
this.displayRefinementResults(output, componentName);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
spinner.fail("Refinement failed");
|
|
94
|
+
console.error(chalk_1.default.red("ā Error:"), error);
|
|
95
|
+
if (options.interactive) {
|
|
96
|
+
return {
|
|
97
|
+
success: false,
|
|
98
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
99
|
+
componentName: path_1.default.basename(componentPath, path_1.default.extname(componentPath)),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get refinement prompt from options or user input
|
|
107
|
+
*/
|
|
108
|
+
async getRefinementPrompt(options) {
|
|
109
|
+
if (options.prompt) {
|
|
110
|
+
return options.prompt;
|
|
111
|
+
}
|
|
112
|
+
// Interactive prompt
|
|
113
|
+
const readline = require("readline");
|
|
114
|
+
const rl = readline.createInterface({
|
|
115
|
+
input: process.stdin,
|
|
116
|
+
output: process.stdout,
|
|
117
|
+
});
|
|
118
|
+
return new Promise((resolve) => {
|
|
119
|
+
rl.question(chalk_1.default.blue("Enter refinement prompt: "), (answer) => {
|
|
120
|
+
rl.close();
|
|
121
|
+
resolve(answer.trim() || "Refine this component with modern design patterns");
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Generate fallback enhancement when AI times out
|
|
127
|
+
*/
|
|
128
|
+
generateFallbackEnhancement(componentCode, prompt) {
|
|
129
|
+
// Simple fallback improvements without AI
|
|
130
|
+
let enhanced = componentCode;
|
|
131
|
+
// Add basic accessibility improvements
|
|
132
|
+
if (enhanced.includes("<button") && !enhanced.includes("aria-label")) {
|
|
133
|
+
enhanced = enhanced.replace(/<button([^>]*)>/g, '<button$1 aria-label="Button">');
|
|
134
|
+
}
|
|
135
|
+
// Add hover effects if not present
|
|
136
|
+
if (enhanced.includes("className=") && !enhanced.includes("hover:")) {
|
|
137
|
+
enhanced = enhanced.replace(/className="([^"]*)"/g, 'className="$1 hover:opacity-80 transition-opacity"');
|
|
138
|
+
}
|
|
139
|
+
// Add focus styles
|
|
140
|
+
if (enhanced.includes("className=") && !enhanced.includes("focus:")) {
|
|
141
|
+
enhanced = enhanced.replace(/className="([^"]*)"/g, 'className="$1 focus:outline-none focus:ring-2 focus:ring-blue-500"');
|
|
142
|
+
}
|
|
143
|
+
return enhanced;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Extract design context from component code
|
|
147
|
+
*/
|
|
148
|
+
extractDesignContext(componentCode) {
|
|
149
|
+
// Simple extraction of design context from component
|
|
150
|
+
const colors = componentCode.match(/(?:bg-|text-|border-)([a-z]+-\d+|primary|secondary|accent)/g) || [];
|
|
151
|
+
const spacing = componentCode.match(/(?:p-|m-|gap-)(\d+|xs|sm|md|lg|xl)/g) || [];
|
|
152
|
+
const typography = componentCode.match(/(?:text-)(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)/g) || [];
|
|
153
|
+
return {
|
|
154
|
+
colors: [...new Set(colors)],
|
|
155
|
+
spacing: [...new Set(spacing)],
|
|
156
|
+
typography: [...new Set(typography)],
|
|
157
|
+
interactions: this.extractInteractions(componentCode),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Extract interaction patterns from component
|
|
162
|
+
*/
|
|
163
|
+
extractInteractions(componentCode) {
|
|
164
|
+
const interactions = [];
|
|
165
|
+
if (componentCode.includes("onClick"))
|
|
166
|
+
interactions.push("click");
|
|
167
|
+
if (componentCode.includes("onChange"))
|
|
168
|
+
interactions.push("change");
|
|
169
|
+
if (componentCode.includes("onSubmit"))
|
|
170
|
+
interactions.push("submit");
|
|
171
|
+
if (componentCode.includes("onFocus"))
|
|
172
|
+
interactions.push("focus");
|
|
173
|
+
if (componentCode.includes("onBlur"))
|
|
174
|
+
interactions.push("blur");
|
|
175
|
+
if (componentCode.includes("useState"))
|
|
176
|
+
interactions.push("state");
|
|
177
|
+
if (componentCode.includes("useEffect"))
|
|
178
|
+
interactions.push("effects");
|
|
179
|
+
return interactions;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Generate refinement output based on format
|
|
183
|
+
*/
|
|
184
|
+
generateRefinementOutput(result, componentName, options) {
|
|
185
|
+
const baseOutput = {
|
|
186
|
+
success: true,
|
|
187
|
+
componentName,
|
|
188
|
+
enhancedCode: result.enhancedComponent,
|
|
189
|
+
originalCode: result.originalComponent || "",
|
|
190
|
+
changes: {
|
|
191
|
+
totalChanges: result.changes.totalChanges,
|
|
192
|
+
addedLines: result.changes.addedLines,
|
|
193
|
+
removedLines: result.changes.removedLines,
|
|
194
|
+
modifiedLines: result.changes.modifiedLines,
|
|
195
|
+
},
|
|
196
|
+
validation: {
|
|
197
|
+
score: result.validation.score,
|
|
198
|
+
isValid: result.validation.isValid,
|
|
199
|
+
errors: result.validation.errors,
|
|
200
|
+
warnings: result.validation.warnings,
|
|
201
|
+
},
|
|
202
|
+
suggestions: result.suggestions,
|
|
203
|
+
metadata: {
|
|
204
|
+
executionTime: Date.now(),
|
|
205
|
+
model: "mycontext-refinement",
|
|
206
|
+
temperature: options.temperature,
|
|
207
|
+
maxTokens: options.maxTokens,
|
|
208
|
+
prompt: options.prompt,
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
// Output based on format
|
|
212
|
+
switch (options.outputFormat) {
|
|
213
|
+
case "diff":
|
|
214
|
+
return this.generateDiffOutput(baseOutput);
|
|
215
|
+
case "preview":
|
|
216
|
+
return this.generatePreviewOutput(baseOutput);
|
|
217
|
+
case "apply":
|
|
218
|
+
return this.generateApplyOutput(baseOutput);
|
|
219
|
+
case "structured":
|
|
220
|
+
default:
|
|
221
|
+
return baseOutput;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Generate diff output for side-by-side comparison
|
|
226
|
+
*/
|
|
227
|
+
generateDiffOutput(baseOutput) {
|
|
228
|
+
return {
|
|
229
|
+
...baseOutput,
|
|
230
|
+
diff: {
|
|
231
|
+
unified: this.generateUnifiedDiff(baseOutput.originalCode, baseOutput.enhancedCode),
|
|
232
|
+
sideBySide: this.generateSideBySideDiff(baseOutput.originalCode, baseOutput.enhancedCode),
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Generate preview output for component rendering
|
|
238
|
+
*/
|
|
239
|
+
generatePreviewOutput(baseOutput) {
|
|
240
|
+
return {
|
|
241
|
+
...baseOutput,
|
|
242
|
+
preview: {
|
|
243
|
+
canRender: this.canRenderComponent(baseOutput.enhancedCode),
|
|
244
|
+
dependencies: this.extractDependencies(baseOutput.enhancedCode),
|
|
245
|
+
props: this.extractComponentProps(baseOutput.enhancedCode),
|
|
246
|
+
warnings: this.extractRenderWarnings(baseOutput.enhancedCode),
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Generate apply output for immediate application
|
|
252
|
+
*/
|
|
253
|
+
generateApplyOutput(baseOutput) {
|
|
254
|
+
return {
|
|
255
|
+
...baseOutput,
|
|
256
|
+
apply: {
|
|
257
|
+
ready: true,
|
|
258
|
+
filePath: baseOutput.metadata?.filePath,
|
|
259
|
+
backupPath: baseOutput.metadata?.backupPath,
|
|
260
|
+
changes: baseOutput.changes,
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Generate unified diff format
|
|
266
|
+
*/
|
|
267
|
+
generateUnifiedDiff(original, enhanced) {
|
|
268
|
+
const originalLines = original.split("\n");
|
|
269
|
+
const enhancedLines = enhanced.split("\n");
|
|
270
|
+
let diff = "";
|
|
271
|
+
let i = 0, j = 0;
|
|
272
|
+
while (i < originalLines.length || j < enhancedLines.length) {
|
|
273
|
+
if (i < originalLines.length &&
|
|
274
|
+
j < enhancedLines.length &&
|
|
275
|
+
originalLines[i] === enhancedLines[j]) {
|
|
276
|
+
diff += ` ${originalLines[i]}\n`;
|
|
277
|
+
i++;
|
|
278
|
+
j++;
|
|
279
|
+
}
|
|
280
|
+
else if (i < originalLines.length) {
|
|
281
|
+
diff += `-${originalLines[i]}\n`;
|
|
282
|
+
i++;
|
|
283
|
+
}
|
|
284
|
+
else if (j < enhancedLines.length) {
|
|
285
|
+
diff += `+${enhancedLines[j]}\n`;
|
|
286
|
+
j++;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return diff;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Generate side-by-side diff format
|
|
293
|
+
*/
|
|
294
|
+
generateSideBySideDiff(original, enhanced) {
|
|
295
|
+
const originalLines = original.split("\n");
|
|
296
|
+
const enhancedLines = enhanced.split("\n");
|
|
297
|
+
const maxLines = Math.max(originalLines.length, enhancedLines.length);
|
|
298
|
+
const sideBySide = [];
|
|
299
|
+
for (let i = 0; i < maxLines; i++) {
|
|
300
|
+
const originalLine = originalLines[i] || "";
|
|
301
|
+
const enhancedLine = enhancedLines[i] || "";
|
|
302
|
+
const isModified = originalLine !== enhancedLine;
|
|
303
|
+
sideBySide.push({
|
|
304
|
+
lineNumber: i + 1,
|
|
305
|
+
original: originalLine,
|
|
306
|
+
enhanced: enhancedLine,
|
|
307
|
+
modified: isModified,
|
|
308
|
+
type: isModified ? "modified" : "unchanged",
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
return sideBySide;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Check if component can be rendered
|
|
315
|
+
*/
|
|
316
|
+
canRenderComponent(code) {
|
|
317
|
+
const hasExport = /export\s+(default\s+)?function|export\s+(default\s+)?const|export\s+class/.test(code);
|
|
318
|
+
const hasReturn = /return\s*\(/.test(code);
|
|
319
|
+
const hasJSX = /<[A-Z][a-zA-Z]*/.test(code);
|
|
320
|
+
return hasExport && hasReturn && hasJSX;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Extract component dependencies
|
|
324
|
+
*/
|
|
325
|
+
extractDependencies(code) {
|
|
326
|
+
const imports = code.match(/import\s+.*?\s+from\s+['"]([^'"]+)['"]/g) || [];
|
|
327
|
+
return imports
|
|
328
|
+
.map((imp) => {
|
|
329
|
+
const match = imp.match(/from\s+['"]([^'"]+)['"]/);
|
|
330
|
+
return match ? match[1] : "";
|
|
331
|
+
})
|
|
332
|
+
.filter(Boolean);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Extract component props interface
|
|
336
|
+
*/
|
|
337
|
+
extractComponentProps(code) {
|
|
338
|
+
const propsMatch = code.match(/interface\s+(\w+)Props\s*\{([^}]+)\}/);
|
|
339
|
+
if (!propsMatch)
|
|
340
|
+
return null;
|
|
341
|
+
const propsText = propsMatch[2];
|
|
342
|
+
const props = propsText
|
|
343
|
+
.split("\n")
|
|
344
|
+
.map((line) => line.trim())
|
|
345
|
+
.filter((line) => line && !line.startsWith("/") && !line.startsWith("*"))
|
|
346
|
+
.map((line) => {
|
|
347
|
+
const propMatch = line.match(/(\w+)\??:\s*(.+?)(?:;|$)/);
|
|
348
|
+
if (propMatch) {
|
|
349
|
+
return {
|
|
350
|
+
name: propMatch[1],
|
|
351
|
+
type: propMatch[2].trim(),
|
|
352
|
+
required: !line.includes("?"),
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
return null;
|
|
356
|
+
})
|
|
357
|
+
.filter(Boolean);
|
|
358
|
+
return props;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Extract render warnings
|
|
362
|
+
*/
|
|
363
|
+
extractRenderWarnings(code) {
|
|
364
|
+
const warnings = [];
|
|
365
|
+
if (!code.includes("useState") && code.includes("setState")) {
|
|
366
|
+
warnings.push("Component uses setState but no useState hook found");
|
|
367
|
+
}
|
|
368
|
+
if (code.includes("useEffect") && !code.includes("dependencies")) {
|
|
369
|
+
warnings.push("useEffect missing dependency array");
|
|
370
|
+
}
|
|
371
|
+
if (code.includes("onClick") && !code.includes("aria-label")) {
|
|
372
|
+
warnings.push("Interactive element missing accessibility label");
|
|
373
|
+
}
|
|
374
|
+
return warnings;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Preserve component history for rollback
|
|
378
|
+
*/
|
|
379
|
+
async preserveComponentHistory(filePath, originalCode) {
|
|
380
|
+
const historyDir = path_1.default.join(path_1.default.dirname(filePath), ".mycontext-history");
|
|
381
|
+
await fs_extra_1.default.ensureDir(historyDir);
|
|
382
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
383
|
+
const historyFile = path_1.default.join(historyDir, `${path_1.default.basename(filePath)}.${timestamp}.backup`);
|
|
384
|
+
await fs_extra_1.default.writeFile(historyFile, originalCode);
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Handle rollback to previous version
|
|
388
|
+
*/
|
|
389
|
+
async handleRollback(filePath, componentName, spinner) {
|
|
390
|
+
spinner.updateText("Rolling back to previous version...");
|
|
391
|
+
const historyDir = path_1.default.join(path_1.default.dirname(filePath), ".mycontext-history");
|
|
392
|
+
if (!(await fs_extra_1.default.pathExists(historyDir))) {
|
|
393
|
+
throw new Error("No history found for rollback");
|
|
394
|
+
}
|
|
395
|
+
const historyFiles = await fs_extra_1.default.readdir(historyDir);
|
|
396
|
+
const backupFiles = historyFiles
|
|
397
|
+
.filter((file) => file.startsWith(`${path_1.default.basename(filePath)}.`) &&
|
|
398
|
+
file.endsWith(".backup"))
|
|
399
|
+
.sort()
|
|
400
|
+
.reverse();
|
|
401
|
+
if (backupFiles.length === 0) {
|
|
402
|
+
throw new Error("No backup files found for rollback");
|
|
403
|
+
}
|
|
404
|
+
const latestBackup = backupFiles[0];
|
|
405
|
+
const backupPath = path_1.default.join(historyDir, latestBackup);
|
|
406
|
+
const backupCode = await fs_extra_1.default.readFile(backupPath, "utf-8");
|
|
407
|
+
// Restore the backup
|
|
408
|
+
await fs_extra_1.default.writeFile(filePath, backupCode);
|
|
409
|
+
spinner.succeed("Rollback completed successfully!");
|
|
410
|
+
return {
|
|
411
|
+
success: true,
|
|
412
|
+
componentName,
|
|
413
|
+
action: "rollback",
|
|
414
|
+
restoredFrom: latestBackup,
|
|
415
|
+
restoredCode: backupCode,
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Apply refinement changes to file
|
|
420
|
+
*/
|
|
421
|
+
async applyRefinement(filePath, enhancedCode, spinner) {
|
|
422
|
+
spinner.updateText("Applying refinement changes...");
|
|
423
|
+
// Create backup before applying
|
|
424
|
+
const backupPath = `${filePath}.backup.${Date.now()}`;
|
|
425
|
+
const originalCode = await fs_extra_1.default.readFile(filePath, "utf-8");
|
|
426
|
+
await fs_extra_1.default.writeFile(backupPath, originalCode);
|
|
427
|
+
// Apply the enhanced code
|
|
428
|
+
await fs_extra_1.default.writeFile(filePath, enhancedCode);
|
|
429
|
+
spinner.updateText("Refinement applied successfully!");
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Display refinement results for CLI
|
|
433
|
+
*/
|
|
434
|
+
displayRefinementResults(output, componentName) {
|
|
435
|
+
console.log(chalk_1.default.green(`\nā
Refined ${componentName}`));
|
|
436
|
+
console.log(chalk_1.default.gray(`Quality Score: ${output.validation.score}/100`));
|
|
437
|
+
if (output.changes.totalChanges > 0) {
|
|
438
|
+
console.log(chalk_1.default.gray(`Changes: ${output.changes.totalChanges} lines modified`));
|
|
439
|
+
}
|
|
440
|
+
if (output.suggestions?.accessibility?.length > 0) {
|
|
441
|
+
console.log(chalk_1.default.yellow("\nš Accessibility Suggestions:"));
|
|
442
|
+
output.suggestions.accessibility.forEach((suggestion) => {
|
|
443
|
+
console.log(chalk_1.default.gray(` ⢠${suggestion}`));
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
if (output.suggestions?.performance?.length > 0) {
|
|
447
|
+
console.log(chalk_1.default.blue("\nā” Performance Suggestions:"));
|
|
448
|
+
output.suggestions.performance.forEach((suggestion) => {
|
|
449
|
+
console.log(chalk_1.default.gray(` ⢠${suggestion}`));
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
exports.RefineCommand = RefineCommand;
|
|
455
|
+
// CLI command setup
|
|
456
|
+
const refineCommand = new RefineCommand();
|
|
457
|
+
exports.refine = new commander_1.Command("refine")
|
|
458
|
+
.description("Refine React components with AI-powered improvements")
|
|
459
|
+
.argument("<component>", "Component file (.tsx/.jsx) to refine")
|
|
460
|
+
.option("-p, --prompt <text>", "Refinement prompt")
|
|
461
|
+
.option("--temperature <number>", "Generation temperature (0-1)", "0.7")
|
|
462
|
+
.option("--max-tokens <number>", "Maximum tokens", "4000")
|
|
463
|
+
.option("--yes", "Skip prompts (non-interactive mode)")
|
|
464
|
+
// Refinement-specific options
|
|
465
|
+
.option("--interactive", "VS Code extension mode with structured output")
|
|
466
|
+
.option("--output-format <format>", "Output format: structured, diff, preview, apply", "structured")
|
|
467
|
+
.option("--show-changes", "Show detailed changes in output")
|
|
468
|
+
.option("--preserve-history", "Keep refinement history for rollback")
|
|
469
|
+
.option("--rollback", "Rollback to previous version")
|
|
470
|
+
.action(async (component, options) => {
|
|
471
|
+
try {
|
|
472
|
+
const result = await refineCommand.execute(component, {
|
|
473
|
+
...options,
|
|
474
|
+
temperature: parseFloat(options.temperature),
|
|
475
|
+
maxTokens: parseInt(options.maxTokens),
|
|
476
|
+
outputFormat: options.outputFormat || "structured",
|
|
477
|
+
interactive: options.interactive || false,
|
|
478
|
+
showChanges: options.showChanges || false,
|
|
479
|
+
preserveHistory: options.preserveHistory || false,
|
|
480
|
+
rollback: options.rollback || false,
|
|
481
|
+
});
|
|
482
|
+
// For interactive mode, output JSON
|
|
483
|
+
if (options.interactive || options.outputFormat !== "default") {
|
|
484
|
+
console.log(JSON.stringify(result, null, 2));
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
catch (error) {
|
|
488
|
+
console.error(chalk_1.default.red("ā Refinement failed:"), error);
|
|
489
|
+
process.exit(1);
|
|
490
|
+
}
|
|
491
|
+
});
|
|
492
|
+
//# sourceMappingURL=refine.js.map
|