mycontext-cli 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +17 -16
  2. package/dist/cli.js +6 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts +3 -0
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +118 -11
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/setup.d.ts.map +1 -1
  9. package/dist/commands/setup.js +8 -0
  10. package/dist/commands/setup.js.map +1 -1
  11. package/dist/config/dependencies.json +180 -0
  12. package/package.json +9 -8
  13. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts +0 -44
  14. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts.map +0 -1
  15. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js +0 -1374
  16. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js.map +0 -1
  17. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts +0 -35
  18. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts.map +0 -1
  19. package/dist/cli/src/agents/implementations/DocsSubAgent.js +0 -351
  20. package/dist/cli/src/agents/implementations/DocsSubAgent.js.map +0 -1
  21. package/dist/cli/src/agents/implementations/EnhancementAgent.d.ts +0 -120
  22. package/dist/cli/src/agents/implementations/EnhancementAgent.d.ts.map +0 -1
  23. package/dist/cli/src/agents/implementations/EnhancementAgent.js +0 -606
  24. package/dist/cli/src/agents/implementations/EnhancementAgent.js.map +0 -1
  25. package/dist/cli/src/agents/implementations/QASubAgent.d.ts +0 -31
  26. package/dist/cli/src/agents/implementations/QASubAgent.d.ts.map +0 -1
  27. package/dist/cli/src/agents/implementations/QASubAgent.js +0 -190
  28. package/dist/cli/src/agents/implementations/QASubAgent.js.map +0 -1
  29. package/dist/cli/src/agents/interfaces/SubAgent.d.ts +0 -287
  30. package/dist/cli/src/agents/interfaces/SubAgent.d.ts.map +0 -1
  31. package/dist/cli/src/agents/interfaces/SubAgent.js +0 -7
  32. package/dist/cli/src/agents/interfaces/SubAgent.js.map +0 -1
  33. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts +0 -59
  34. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts.map +0 -1
  35. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js +0 -305
  36. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js.map +0 -1
  37. package/dist/cli/src/agents/personalities/definitions.d.ts +0 -34
  38. package/dist/cli/src/agents/personalities/definitions.d.ts.map +0 -1
  39. package/dist/cli/src/agents/personalities/definitions.js +0 -389
  40. package/dist/cli/src/agents/personalities/definitions.js.map +0 -1
  41. package/dist/cli/src/cli.d.ts +0 -3
  42. package/dist/cli/src/cli.d.ts.map +0 -1
  43. package/dist/cli/src/cli.js +0 -298
  44. package/dist/cli/src/cli.js.map +0 -1
  45. package/dist/cli/src/commands/auth.d.ts +0 -23
  46. package/dist/cli/src/commands/auth.d.ts.map +0 -1
  47. package/dist/cli/src/commands/auth.js +0 -212
  48. package/dist/cli/src/commands/auth.js.map +0 -1
  49. package/dist/cli/src/commands/enhance.d.ts +0 -28
  50. package/dist/cli/src/commands/enhance.d.ts.map +0 -1
  51. package/dist/cli/src/commands/enhance.js +0 -246
  52. package/dist/cli/src/commands/enhance.js.map +0 -1
  53. package/dist/cli/src/commands/generate-components.d.ts +0 -27
  54. package/dist/cli/src/commands/generate-components.d.ts.map +0 -1
  55. package/dist/cli/src/commands/generate-components.js +0 -680
  56. package/dist/cli/src/commands/generate-components.js.map +0 -1
  57. package/dist/cli/src/commands/generate.d.ts +0 -108
  58. package/dist/cli/src/commands/generate.d.ts.map +0 -1
  59. package/dist/cli/src/commands/generate.js +0 -1970
  60. package/dist/cli/src/commands/generate.js.map +0 -1
  61. package/dist/cli/src/commands/init.d.ts +0 -13
  62. package/dist/cli/src/commands/init.d.ts.map +0 -1
  63. package/dist/cli/src/commands/init.js +0 -91
  64. package/dist/cli/src/commands/init.js.map +0 -1
  65. package/dist/cli/src/commands/list.d.ts +0 -17
  66. package/dist/cli/src/commands/list.d.ts.map +0 -1
  67. package/dist/cli/src/commands/list.js +0 -210
  68. package/dist/cli/src/commands/list.js.map +0 -1
  69. package/dist/cli/src/commands/model.d.ts +0 -25
  70. package/dist/cli/src/commands/model.d.ts.map +0 -1
  71. package/dist/cli/src/commands/model.js +0 -317
  72. package/dist/cli/src/commands/model.js.map +0 -1
  73. package/dist/cli/src/commands/preview.d.ts +0 -23
  74. package/dist/cli/src/commands/preview.d.ts.map +0 -1
  75. package/dist/cli/src/commands/preview.js +0 -1200
  76. package/dist/cli/src/commands/preview.js.map +0 -1
  77. package/dist/cli/src/commands/setup.d.ts +0 -35
  78. package/dist/cli/src/commands/setup.d.ts.map +0 -1
  79. package/dist/cli/src/commands/setup.js +0 -412
  80. package/dist/cli/src/commands/setup.js.map +0 -1
  81. package/dist/cli/src/commands/status.d.ts +0 -21
  82. package/dist/cli/src/commands/status.d.ts.map +0 -1
  83. package/dist/cli/src/commands/status.js +0 -287
  84. package/dist/cli/src/commands/status.js.map +0 -1
  85. package/dist/cli/src/commands/validate.d.ts +0 -22
  86. package/dist/cli/src/commands/validate.d.ts.map +0 -1
  87. package/dist/cli/src/commands/validate.js +0 -259
  88. package/dist/cli/src/commands/validate.js.map +0 -1
  89. package/dist/cli/src/types/index.d.ts +0 -152
  90. package/dist/cli/src/types/index.d.ts.map +0 -1
  91. package/dist/cli/src/types/index.js +0 -3
  92. package/dist/cli/src/types/index.js.map +0 -1
  93. package/dist/cli/src/utils/apiKeyManager.d.ts +0 -137
  94. package/dist/cli/src/utils/apiKeyManager.d.ts.map +0 -1
  95. package/dist/cli/src/utils/apiKeyManager.js +0 -471
  96. package/dist/cli/src/utils/apiKeyManager.js.map +0 -1
  97. package/dist/cli/src/utils/componentValidator.d.ts +0 -60
  98. package/dist/cli/src/utils/componentValidator.d.ts.map +0 -1
  99. package/dist/cli/src/utils/componentValidator.js +0 -191
  100. package/dist/cli/src/utils/componentValidator.js.map +0 -1
  101. package/dist/cli/src/utils/designTokenExtractor.d.ts +0 -94
  102. package/dist/cli/src/utils/designTokenExtractor.d.ts.map +0 -1
  103. package/dist/cli/src/utils/designTokenExtractor.js +0 -231
  104. package/dist/cli/src/utils/designTokenExtractor.js.map +0 -1
  105. package/dist/cli/src/utils/errorHandler.d.ts +0 -105
  106. package/dist/cli/src/utils/errorHandler.d.ts.map +0 -1
  107. package/dist/cli/src/utils/errorHandler.js +0 -332
  108. package/dist/cli/src/utils/errorHandler.js.map +0 -1
  109. package/dist/cli/src/utils/fileSystem.d.ts +0 -58
  110. package/dist/cli/src/utils/fileSystem.d.ts.map +0 -1
  111. package/dist/cli/src/utils/fileSystem.js +0 -230
  112. package/dist/cli/src/utils/fileSystem.js.map +0 -1
  113. package/dist/cli/src/utils/githubModels.d.ts +0 -53
  114. package/dist/cli/src/utils/githubModels.d.ts.map +0 -1
  115. package/dist/cli/src/utils/githubModels.js +0 -239
  116. package/dist/cli/src/utils/githubModels.js.map +0 -1
  117. package/dist/cli/src/utils/ollamaClient.d.ts +0 -37
  118. package/dist/cli/src/utils/ollamaClient.d.ts.map +0 -1
  119. package/dist/cli/src/utils/ollamaClient.js +0 -213
  120. package/dist/cli/src/utils/ollamaClient.js.map +0 -1
  121. package/dist/cli/src/utils/spinner.d.ts +0 -30
  122. package/dist/cli/src/utils/spinner.d.ts.map +0 -1
  123. package/dist/cli/src/utils/spinner.js +0 -119
  124. package/dist/cli/src/utils/spinner.js.map +0 -1
  125. package/dist/cli/src/utils/xaiClient.d.ts +0 -59
  126. package/dist/cli/src/utils/xaiClient.d.ts.map +0 -1
  127. package/dist/cli/src/utils/xaiClient.js +0 -244
  128. package/dist/cli/src/utils/xaiClient.js.map +0 -1
  129. package/dist/lib/analytics/usage-tracker.d.ts +0 -125
  130. package/dist/lib/analytics/usage-tracker.d.ts.map +0 -1
  131. package/dist/lib/analytics/usage-tracker.js +0 -429
  132. package/dist/lib/analytics/usage-tracker.js.map +0 -1
  133. package/dist/utils/githubModels.d.ts +0 -53
  134. package/dist/utils/githubModels.d.ts.map +0 -1
  135. package/dist/utils/githubModels.js +0 -239
  136. package/dist/utils/githubModels.js.map +0 -1
@@ -1,606 +0,0 @@
1
- "use strict";
2
- /**
3
- * EnhancementAgent Implementation
4
- *
5
- * Specialized sub-agent for iterative component design refinement.
6
- * Focuses on enhancing single React components through user prompts,
7
- * maintaining design consistency, and extracting design tokens.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.EnhancementAgent = void 0;
11
- const definitions_1 = require("../personalities/definitions");
12
- const xaiClient_1 = require("../../utils/xaiClient");
13
- const designTokenExtractor_1 = require("../../utils/designTokenExtractor");
14
- const componentValidator_1 = require("../../utils/componentValidator");
15
- class EnhancementAgent {
16
- constructor() {
17
- this.name = "EnhancementAgent";
18
- this.description = "Specialized agent for iterative component design refinement and enhancement";
19
- const personality = (0, definitions_1.getSubAgentPersonality)(this.name);
20
- if (!personality) {
21
- throw new Error(`Personality not found for ${this.name}`);
22
- }
23
- this.personality = personality.personality;
24
- this.llmProvider = personality.llmProvider;
25
- this.expertise = personality.expertise;
26
- // Initialize utilities
27
- this.xaiClient = new xaiClient_1.XAIClient({
28
- apiKey: process.env.XAI_API_KEY || "",
29
- temperature: 0.7,
30
- maxTokens: 4000,
31
- baseUrl: process.env.XAI_BASE_URL || undefined,
32
- });
33
- this.tokenExtractor = new designTokenExtractor_1.DesignTokenExtractor();
34
- this.validator = new componentValidator_1.ComponentValidator();
35
- }
36
- async run(input) {
37
- const { currentComponent, userPrompt, designContext, constraints } = input;
38
- try {
39
- // 1. Analyze current component
40
- const analysis = await this.analyzeComponent(currentComponent);
41
- // 2. Clarify the user's prompt to remove ambiguity and infer symmetric behavior
42
- const clarified = await this.clarifyUserRequest(currentComponent, userPrompt, analysis, designContext);
43
- // 3. Generate enhancement based on clarified prompt
44
- const gen = await this.generateEnhancement(currentComponent, clarified?.clarifiedText || userPrompt, analysis, designContext);
45
- const enhancedComponent = gen.enhancedComponent;
46
- // 4. Extract design tokens from enhanced component
47
- const designTokens = await this.tokenExtractor.extractTokens(enhancedComponent);
48
- // 5. Validate enhancement against constraints
49
- const validation = await this.validator.validateEnhancement(enhancedComponent, constraints);
50
- // 6. Generate enhancement suggestions
51
- const suggestions = await this.generateSuggestions(enhancedComponent, designTokens);
52
- // 7. Calculate changes between versions
53
- const changes = this.diffComponents(currentComponent, enhancedComponent);
54
- return {
55
- enhancedComponent,
56
- designTokens,
57
- changes,
58
- validation,
59
- suggestions,
60
- analysis: {
61
- originalAnalysis: analysis,
62
- enhancedAnalysis: await this.analyzeComponent(enhancedComponent),
63
- },
64
- promptUsed: {
65
- system: gen.systemPrompt,
66
- composed: gen.composedPrompt,
67
- clarified: clarified?.clarifiedText,
68
- },
69
- };
70
- }
71
- catch (error) {
72
- console.error("EnhancementAgent failed:", error);
73
- throw new Error(`Enhancement failed: ${error instanceof Error ? error.message : "Unknown error"}`);
74
- }
75
- }
76
- async validate(input) {
77
- // Validate required fields
78
- if (!input.currentComponent || !input.userPrompt) {
79
- return false;
80
- }
81
- // Validate component syntax
82
- try {
83
- await this.validator.validateSyntax(input.currentComponent);
84
- return true;
85
- }
86
- catch (error) {
87
- return false;
88
- }
89
- }
90
- async getStatus() {
91
- return {
92
- name: this.name,
93
- status: "idle",
94
- errorCount: 0,
95
- successCount: 0,
96
- };
97
- }
98
- async analyzeComponent(componentCode) {
99
- const analysis = {
100
- type: this.detectComponentType(componentCode),
101
- complexity: this.assessComplexity(componentCode),
102
- dependencies: this.extractDependencies(componentCode),
103
- designPatterns: this.extractDesignPatterns(componentCode),
104
- accessibility: this.assessAccessibility(componentCode),
105
- performance: this.assessPerformance(componentCode),
106
- linesOfCode: componentCode.split("\n").length,
107
- hasState: this.hasStateManagement(componentCode),
108
- hasEffects: this.hasSideEffects(componentCode),
109
- hasProps: this.hasProps(componentCode),
110
- };
111
- return analysis;
112
- }
113
- async generateEnhancement(currentComponent, prompt, analysis, designContext) {
114
- const systemPrompt = this.buildEnhancementPrompt(analysis, designContext);
115
- const composedPrompt = `${systemPrompt}\n\nUser Request: ${prompt}\n\nCurrent Component:\n\`\`\`tsx\n${currentComponent}\n\`\`\`\n\nEnhanced Component:`;
116
- // Try multiple AI providers with fallback
117
- const providers = [
118
- { name: "xai", client: this.xaiClient },
119
- { name: "claude-sonnet", client: null }, // TODO: Add Claude client
120
- { name: "gemini-pro", client: null }, // TODO: Add Gemini client
121
- { name: "github-models", client: null }, // TODO: Add GitHub client
122
- ];
123
- let lastRawOutput;
124
- let lastError;
125
- for (const provider of providers) {
126
- try {
127
- if (provider.client) {
128
- if (process.env.DEBUG_ENHANCER === "true") {
129
- console.log(`[enhancer] provider=${provider.name} calling generate`);
130
- }
131
- const result = await provider.client.generate({
132
- prompt: composedPrompt,
133
- systemPrompt,
134
- temperature: 0.7,
135
- maxTokens: 4000,
136
- });
137
- if (process.env.DEBUG_ENHANCER === "true") {
138
- console.log(`[enhancer] provider=${provider.name} raw length=${result.content?.length || 0} sample=`, (result.content || "").slice(0, 240));
139
- }
140
- lastRawOutput = result.content || "";
141
- const enhancedComponent = this.postProcessComponent(lastRawOutput);
142
- // Validate the enhanced component
143
- if (await this.validator.validateSyntax(enhancedComponent)) {
144
- return {
145
- enhancedComponent,
146
- systemPrompt,
147
- composedPrompt,
148
- rawOutput: lastRawOutput,
149
- };
150
- }
151
- }
152
- }
153
- catch (error) {
154
- console.warn(`${provider.name} failed, trying next...`, error instanceof Error ? error.message : error);
155
- lastError = error;
156
- continue;
157
- }
158
- }
159
- // Soft fallback: return original component with warning and raw output
160
- const allowSoftFallback = process.env.ENHANCER_NO_SOFT_FALLBACK === "true" ? false : true;
161
- if (allowSoftFallback) {
162
- return {
163
- enhancedComponent: currentComponent,
164
- systemPrompt,
165
- composedPrompt,
166
- rawOutput: lastRawOutput,
167
- warning: `AI generation returned invalid code. Falling back to original component. ${lastError instanceof Error ? lastError.message : ""}`,
168
- };
169
- }
170
- throw new Error("All AI providers failed to generate enhancement");
171
- }
172
- /**
173
- * Clarify the user's freeform request into a precise, unambiguous instruction.
174
- * Encourages symmetric behavior (e.g., if increment changes, consider decrement implications)
175
- * but preserves the rule of minimal change unless explicitly requested.
176
- */
177
- async clarifyUserRequest(currentComponent, userPrompt, analysis, designContext) {
178
- try {
179
- const systemPrompt = `You clarify enhancement requests for React components.
180
- Return a single JSON object only. No prose.
181
- Infer safe, minimal implications (e.g., if increment logic changes, consider whether decrement should mirror that if user intent implies symmetry).
182
- Do not add new features unrelated to the user's request.`;
183
- const prompt = `User Request: ${userPrompt}
184
-
185
- Component quick facts:
186
- - Type: ${analysis.type}
187
- - Has State: ${analysis.hasState}
188
- - Has Props: ${analysis.hasProps}
189
- - Lines: ${analysis.linesOfCode}
190
-
191
- Design Context:
192
- - Colors: ${designContext.colors.join(", ")}
193
- - Spacing: ${designContext.spacing}
194
- - Typography: ${designContext.typography}
195
- - Interactions: ${designContext.interactions.join(", ")}
196
-
197
- Clarify into JSON with this exact shape:
198
- {
199
- "clarifiedText": string, // one concise instruction that the code generator can follow
200
- "assumptions": string[], // implicit assumptions you made
201
- "implications": string[] // symmetrical or related behaviors to adjust, if any
202
- }
203
-
204
- Examples:
205
- - Input: "increment by prime numbers" => clarifiedText might specify both increment behavior and whether decrement should reverse prime step, if implied.
206
-
207
- Return only JSON.`;
208
- const res = await this.xaiClient.generate({
209
- prompt,
210
- systemPrompt,
211
- temperature: 0.2,
212
- maxTokens: 800,
213
- });
214
- try {
215
- const data = JSON.parse(res.content || "{}");
216
- if (typeof data?.clarifiedText === "string" &&
217
- data.clarifiedText.trim()) {
218
- return { clarifiedText: data.clarifiedText.trim() };
219
- }
220
- }
221
- catch {
222
- // fall through
223
- }
224
- // Fallback: lightly rephrase without JSON parsing
225
- const fallback = (res.content || "").trim();
226
- if (fallback)
227
- return { clarifiedText: fallback };
228
- return null;
229
- }
230
- catch {
231
- return null;
232
- }
233
- }
234
- buildEnhancementPrompt(analysis, designContext) {
235
- return `
236
- You are an expert React component designer specializing in iterative refinement and enhancement.
237
-
238
- Current Component Analysis (for context only):
239
- - Type: ${analysis.type}
240
- - Complexity: ${analysis.complexity}
241
- - Dependencies: ${analysis.dependencies.join(", ")}
242
- - Design Patterns: ${analysis.designPatterns.join(", ")}
243
- - Has State: ${analysis.hasState}
244
- - Has Props: ${analysis.hasProps}
245
-
246
- Design Context:
247
- - Colors: ${designContext.colors.join(", ")}
248
- - Spacing: ${designContext.spacing}
249
- - Typography: ${designContext.typography}
250
- - Interactions: ${designContext.interactions.join(", ")}
251
-
252
- Enhancement Guidelines (visual-first):
253
- 1. Prioritize fulfilling the user's request for visualization and interactivity. Avoid unrelated changes.
254
- 2. Preserve public interfaces (props/state names) unless the user asks to change them.
255
- 3. It's okay for the component to be larger or include internal helper functions and small subcomponents in the same file.
256
- 4. Use shadcn primitives via alias imports (e.g., import { Button } from '@ui/button'). Avoid external libraries. Inline logic and Tailwind are preferred.
257
- 5. Accessibility and responsiveness are encouraged when they don't conflict with the user's request.
258
- 6. Maintain strict TypeScript.
259
- 7. If the user's request is ambiguous, make the smallest reasonable change. If the request implies symmetry (e.g., increment logic), consider mirroring related actions.
260
- 8. Return the full component code; no markdown or prose is allowed.
261
-
262
- Code Quality Requirements:
263
- - Use functional components with hooks
264
- - Implement proper TypeScript interfaces
265
- - Add JSDoc comments for complex logic
266
- - Use semantic HTML elements
267
- - Implement proper event handling
268
- - Add proper prop validation
269
- - Use Tailwind CSS for styling
270
- - Ensure responsive design with mobile-first approach
271
-
272
- Output rules (critical):
273
- - Return only valid TSX code. No prose, no markdown fences, no backticks.
274
- - Must include a single default export: export default function ComponentName() { ... }
275
- - Use shadcn primitives via alias imports (e.g., import { Button } from '@ui/button').
276
- - Avoid unused imports. Comments are allowed.
277
- - Ensure the code compiles as-is.
278
-
279
- Return only the enhanced React component code with TypeScript, nothing else.
280
- `;
281
- }
282
- postProcessComponent(componentCode) {
283
- // Clean up and normalize LLM output into a valid default-exported TSX component
284
- let cleaned = componentCode.trim();
285
- // 1) Strip markdown code fences and any language hints
286
- cleaned = cleaned.replace(/```tsx?\n?/gi, "").replace(/```\n?/g, "");
287
- // 2) Remove leading prose before first likely code token
288
- const firstCodeIdxCandidates = [
289
- cleaned.indexOf("\nimport "),
290
- cleaned.indexOf("import "),
291
- cleaned.indexOf("export "),
292
- cleaned.indexOf("function "),
293
- cleaned.indexOf("const "),
294
- cleaned.indexOf("class "),
295
- ].filter((idx) => idx >= 0);
296
- if (firstCodeIdxCandidates.length > 0) {
297
- const startIdx = Math.min(...firstCodeIdxCandidates);
298
- cleaned = cleaned.slice(startIdx);
299
- }
300
- // 3) Ensure React import if hooks are referenced but no React import is present
301
- const usesHooks = /(useState|useEffect|useMemo|useCallback|useRef)/.test(cleaned);
302
- const hasReactImport = /import\s+React/.test(cleaned);
303
- if (usesHooks && !hasReactImport) {
304
- cleaned =
305
- `import React, { useState, useEffect, useMemo, useCallback, useRef } from "react";\n` +
306
- cleaned;
307
- }
308
- // 4) Normalize exports
309
- if (!/export\s+default/.test(cleaned)) {
310
- // Convert `export function Name` → `export default function Name`
311
- if (/export\s+function\s+([A-Z]\w*)\s*\(/.test(cleaned)) {
312
- cleaned = cleaned.replace(/export\s+function\s+([A-Z]\w*)\s*\(/, "export default function $1(");
313
- }
314
- // Convert `export const Name = ...` → `const Name = ...; export default Name;`
315
- if (!/export\s+default/.test(cleaned)) {
316
- cleaned = cleaned.replace(/export\s+const\s+([A-Z]\w*)\s*=\s*/g, "const $1 = ");
317
- }
318
- // If still no default export, append one for obvious component declarations
319
- if (!/export\s+default/.test(cleaned)) {
320
- const fnMatch = cleaned.match(/function\s+([A-Z]\w*)\s*\(/);
321
- const varMatch = cleaned.match(/const\s+([A-Z]\w*)\s*=\s*(?:\(|<)/);
322
- const componentName = (fnMatch && fnMatch[1]) || (varMatch && varMatch[1]) || null;
323
- if (componentName) {
324
- // Avoid duplicate default export lines
325
- const hasDefaultLine = new RegExp(`export\\s+default\\s+${componentName}`).test(cleaned);
326
- if (!hasDefaultLine) {
327
- cleaned = `${cleaned.trim()}\n\nexport default ${componentName};\n`;
328
- }
329
- }
330
- }
331
- }
332
- // 5) Final validation or last-resort JSX wrapper
333
- if (!/export\s+default/.test(cleaned)) {
334
- // If the model produced a bare JSX tree, wrap it
335
- const hasJSX = /<[A-Za-z][\s\S]*>/.test(cleaned);
336
- const hasImportsOrExports = /\b(import|export)\b/.test(cleaned);
337
- if (hasJSX && !hasImportsOrExports) {
338
- const wrapped = `import React from "react";\n\nfunction EnhancedComponent() {\n return (\n${cleaned}\n );\n}\n\nexport default EnhancedComponent;\n`;
339
- return wrapped;
340
- }
341
- // Otherwise, still invalid
342
- throw new Error("Generated code is not a valid React component");
343
- }
344
- return cleaned;
345
- }
346
- detectComponentType(componentCode) {
347
- const componentName = this.extractComponentName(componentCode);
348
- if (componentName.toLowerCase().includes("form"))
349
- return "form";
350
- if (componentName.toLowerCase().includes("modal") ||
351
- componentName.toLowerCase().includes("dialog"))
352
- return "modal";
353
- if (componentName.toLowerCase().includes("card"))
354
- return "card";
355
- if (componentName.toLowerCase().includes("button"))
356
- return "button";
357
- if (componentName.toLowerCase().includes("input"))
358
- return "input";
359
- if (componentName.toLowerCase().includes("list"))
360
- return "list";
361
- if (componentName.toLowerCase().includes("grid"))
362
- return "grid";
363
- if (componentName.toLowerCase().includes("table"))
364
- return "table";
365
- if (componentName.toLowerCase().includes("chart"))
366
- return "chart";
367
- if (componentName.toLowerCase().includes("nav"))
368
- return "navigation";
369
- return "custom";
370
- }
371
- assessComplexity(componentCode) {
372
- const lines = componentCode.split("\n").length;
373
- const hasState = this.hasStateManagement(componentCode);
374
- const hasEffects = this.hasSideEffects(componentCode);
375
- const hasProps = this.hasProps(componentCode);
376
- const hasConditionals = (componentCode.match(/if|else|switch|ternary/g) || []).length;
377
- const hasLoops = (componentCode.match(/map|forEach|for|while/g) || [])
378
- .length;
379
- let complexity = 0;
380
- if (lines > 100)
381
- complexity += 2;
382
- if (hasState)
383
- complexity += 1;
384
- if (hasEffects)
385
- complexity += 1;
386
- if (hasProps)
387
- complexity += 1;
388
- if (hasConditionals > 3)
389
- complexity += 1;
390
- if (hasLoops > 2)
391
- complexity += 1;
392
- if (complexity <= 2)
393
- return "simple";
394
- if (complexity <= 4)
395
- return "medium";
396
- return "complex";
397
- }
398
- extractDependencies(componentCode) {
399
- const dependencies = [];
400
- // Extract React imports
401
- if (componentCode.includes("useState"))
402
- dependencies.push("useState");
403
- if (componentCode.includes("useEffect"))
404
- dependencies.push("useEffect");
405
- if (componentCode.includes("useCallback"))
406
- dependencies.push("useCallback");
407
- if (componentCode.includes("useMemo"))
408
- dependencies.push("useMemo");
409
- if (componentCode.includes("useRef"))
410
- dependencies.push("useRef");
411
- if (componentCode.includes("useContext"))
412
- dependencies.push("useContext");
413
- // Extract shadcn/ui components
414
- const shadcnComponents = [
415
- "Button",
416
- "Input",
417
- "Card",
418
- "Dialog",
419
- "Modal",
420
- "Select",
421
- "Checkbox",
422
- "RadioGroup",
423
- "Textarea",
424
- "Switch",
425
- "Slider",
426
- "Progress",
427
- "Badge",
428
- "Avatar",
429
- "Alert",
430
- "Toast",
431
- "Tooltip",
432
- "Popover",
433
- "DropdownMenu",
434
- ];
435
- shadcnComponents.forEach((component) => {
436
- if (componentCode.includes(component)) {
437
- dependencies.push(`@ui/${component.toLowerCase()}`);
438
- }
439
- });
440
- return dependencies;
441
- }
442
- extractDesignPatterns(componentCode) {
443
- const patterns = [];
444
- if (componentCode.includes("className="))
445
- patterns.push("Tailwind CSS");
446
- if (componentCode.includes("useState"))
447
- patterns.push("State Management");
448
- if (componentCode.includes("useEffect"))
449
- patterns.push("Side Effects");
450
- if (componentCode.includes("onClick"))
451
- patterns.push("Event Handling");
452
- if (componentCode.includes("disabled"))
453
- patterns.push("Disabled States");
454
- if (componentCode.includes("loading"))
455
- patterns.push("Loading States");
456
- if (componentCode.includes("error"))
457
- patterns.push("Error Handling");
458
- if (componentCode.includes("aria-"))
459
- patterns.push("Accessibility");
460
- if (componentCode.includes("transition"))
461
- patterns.push("Animations");
462
- if (componentCode.includes("hover:"))
463
- patterns.push("Hover Effects");
464
- return patterns;
465
- }
466
- assessAccessibility(componentCode) {
467
- let score = 0;
468
- if (componentCode.includes("aria-label"))
469
- score += 20;
470
- if (componentCode.includes("aria-describedby"))
471
- score += 15;
472
- if (componentCode.includes("role="))
473
- score += 15;
474
- if (componentCode.includes("tabIndex"))
475
- score += 10;
476
- if (componentCode.includes("onKeyDown"))
477
- score += 10;
478
- if (componentCode.includes("alt="))
479
- score += 10;
480
- if (componentCode.includes("semantic"))
481
- score += 10;
482
- if (componentCode.includes("focus"))
483
- score += 10;
484
- return Math.min(score, 100);
485
- }
486
- assessPerformance(componentCode) {
487
- let score = 100;
488
- if (componentCode.includes("useMemo"))
489
- score += 10;
490
- if (componentCode.includes("useCallback"))
491
- score += 10;
492
- if (componentCode.includes("React.memo"))
493
- score += 10;
494
- if (componentCode.includes("lazy"))
495
- score += 10;
496
- if (componentCode.includes("suspense"))
497
- score += 10;
498
- // Penalties for performance issues
499
- if (componentCode.includes("setInterval") &&
500
- !componentCode.includes("clearInterval"))
501
- score -= 20;
502
- if (componentCode.includes("addEventListener") &&
503
- !componentCode.includes("removeEventListener"))
504
- score -= 20;
505
- if (componentCode.includes("new Date()") &&
506
- componentCode.includes("useEffect"))
507
- score -= 15;
508
- return Math.max(score, 0);
509
- }
510
- hasStateManagement(componentCode) {
511
- return (componentCode.includes("useState") || componentCode.includes("useReducer"));
512
- }
513
- hasSideEffects(componentCode) {
514
- return (componentCode.includes("useEffect") ||
515
- componentCode.includes("useLayoutEffect"));
516
- }
517
- hasProps(componentCode) {
518
- return (componentCode.includes("props") ||
519
- componentCode.includes("interface") ||
520
- componentCode.includes("type Props"));
521
- }
522
- extractComponentName(componentCode) {
523
- const match = componentCode.match(/export\s+default\s+function\s+(\w+)/);
524
- return match ? match[1] : "UnknownComponent";
525
- }
526
- async generateSuggestions(componentCode, designTokens) {
527
- const suggestions = {
528
- accessibility: [],
529
- performance: [],
530
- design: [],
531
- functionality: [],
532
- };
533
- // Analyze for accessibility improvements
534
- if (!componentCode.includes("aria-label")) {
535
- suggestions.accessibility.push("Add ARIA labels for better screen reader support");
536
- }
537
- if (!componentCode.includes("onKeyDown")) {
538
- suggestions.accessibility.push("Add keyboard navigation support");
539
- }
540
- if (!componentCode.includes("focus")) {
541
- suggestions.accessibility.push("Add focus management for better UX");
542
- }
543
- // Analyze for performance improvements
544
- if (componentCode.includes("useState") &&
545
- !componentCode.includes("useCallback")) {
546
- suggestions.performance.push("Consider using useCallback for event handlers");
547
- }
548
- if (componentCode.includes("map") && !componentCode.includes("key=")) {
549
- suggestions.performance.push("Add key prop to mapped elements");
550
- }
551
- // Analyze for design improvements
552
- if (!componentCode.includes("transition")) {
553
- suggestions.design.push("Add smooth transitions for better user experience");
554
- }
555
- if (!componentCode.includes("hover:")) {
556
- suggestions.design.push("Add hover effects for interactive elements");
557
- }
558
- if (!componentCode.includes("responsive")) {
559
- suggestions.design.push("Ensure responsive design for mobile devices");
560
- }
561
- // Analyze for functionality improvements
562
- if (componentCode.includes("onClick") &&
563
- !componentCode.includes("disabled")) {
564
- suggestions.functionality.push("Add loading states for async operations");
565
- }
566
- if (!componentCode.includes("error")) {
567
- suggestions.functionality.push("Add error handling for better reliability");
568
- }
569
- return suggestions;
570
- }
571
- diffComponents(originalComponent, enhancedComponent) {
572
- const changes = {
573
- addedLines: [],
574
- removedLines: [],
575
- modifiedLines: [],
576
- totalChanges: 0,
577
- };
578
- const originalLines = originalComponent.split("\n");
579
- const enhancedLines = enhancedComponent.split("\n");
580
- // Simple line-by-line comparison
581
- const maxLines = Math.max(originalLines.length, enhancedLines.length);
582
- for (let i = 0; i < maxLines; i++) {
583
- const originalLine = originalLines[i] || "";
584
- const enhancedLine = enhancedLines[i] || "";
585
- if (originalLine !== enhancedLine) {
586
- if (!originalLine) {
587
- changes.addedLines.push({ line: i + 1, content: enhancedLine });
588
- }
589
- else if (!enhancedLine) {
590
- changes.removedLines.push({ line: i + 1, content: originalLine });
591
- }
592
- else {
593
- changes.modifiedLines.push({
594
- line: i + 1,
595
- original: originalLine,
596
- enhanced: enhancedLine,
597
- });
598
- }
599
- changes.totalChanges++;
600
- }
601
- }
602
- return changes;
603
- }
604
- }
605
- exports.EnhancementAgent = EnhancementAgent;
606
- //# sourceMappingURL=EnhancementAgent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnhancementAgent.js","sourceRoot":"","sources":["../../../../../src/agents/implementations/EnhancementAgent.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * QASubAgent Implementation
3
- *
4
- * Specialized sub-agent for quality assurance and code validation.
5
- * Uses Claude Sonnet for analytical capabilities.
6
- */
7
- import { SubAgent, QAValidationInput, QAValidationOutput } from "../interfaces/SubAgent";
8
- export declare class QASubAgent implements SubAgent<QAValidationInput, QAValidationOutput> {
9
- name: string;
10
- description: string;
11
- personality: string;
12
- llmProvider: string;
13
- expertise: string[];
14
- constructor();
15
- run(input: QAValidationInput): Promise<QAValidationOutput>;
16
- validate(input: QAValidationInput): Promise<boolean>;
17
- getStatus(): Promise<{
18
- name: string;
19
- status: "idle" | "running" | "completed" | "error";
20
- lastRun?: Date;
21
- executionTime?: number;
22
- errorCount: number;
23
- successCount: number;
24
- }>;
25
- private checkTypeScriptCompliance;
26
- private checkReactBestPractices;
27
- private checkAccessibility;
28
- private checkPerformance;
29
- private checkSecurity;
30
- }
31
- //# sourceMappingURL=QASubAgent.d.ts.map