@codebakers/mcp 5.2.0

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 (140) hide show
  1. package/INSTALL.md +221 -0
  2. package/LICENSE +21 -0
  3. package/README.md +412 -0
  4. package/dist/cli.d.ts +9 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +236 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/index.d.ts +12 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +526 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/analyze-mockups.d.ts +18 -0
  13. package/dist/tools/analyze-mockups.d.ts.map +1 -0
  14. package/dist/tools/analyze-mockups.js +497 -0
  15. package/dist/tools/analyze-mockups.js.map +1 -0
  16. package/dist/tools/autonomous-build.d.ts +19 -0
  17. package/dist/tools/autonomous-build.d.ts.map +1 -0
  18. package/dist/tools/autonomous-build.js +287 -0
  19. package/dist/tools/autonomous-build.js.map +1 -0
  20. package/dist/tools/check-gate.d.ts +21 -0
  21. package/dist/tools/check-gate.d.ts.map +1 -0
  22. package/dist/tools/check-gate.js +446 -0
  23. package/dist/tools/check-gate.js.map +1 -0
  24. package/dist/tools/check-scope.d.ts +22 -0
  25. package/dist/tools/check-scope.d.ts.map +1 -0
  26. package/dist/tools/check-scope.js +251 -0
  27. package/dist/tools/check-scope.js.map +1 -0
  28. package/dist/tools/deploy-vercel.d.ts +18 -0
  29. package/dist/tools/deploy-vercel.d.ts.map +1 -0
  30. package/dist/tools/deploy-vercel.js +178 -0
  31. package/dist/tools/deploy-vercel.js.map +1 -0
  32. package/dist/tools/diagnose-error.d.ts +20 -0
  33. package/dist/tools/diagnose-error.d.ts.map +1 -0
  34. package/dist/tools/diagnose-error.js +351 -0
  35. package/dist/tools/diagnose-error.js.map +1 -0
  36. package/dist/tools/enforce-feature.d.ts +25 -0
  37. package/dist/tools/enforce-feature.d.ts.map +1 -0
  38. package/dist/tools/enforce-feature.js +387 -0
  39. package/dist/tools/enforce-feature.js.map +1 -0
  40. package/dist/tools/execute-atomic-unit.d.ts +23 -0
  41. package/dist/tools/execute-atomic-unit.d.ts.map +1 -0
  42. package/dist/tools/execute-atomic-unit.js +107 -0
  43. package/dist/tools/execute-atomic-unit.js.map +1 -0
  44. package/dist/tools/fix-commit.d.ts +23 -0
  45. package/dist/tools/fix-commit.d.ts.map +1 -0
  46. package/dist/tools/fix-commit.js +213 -0
  47. package/dist/tools/fix-commit.js.map +1 -0
  48. package/dist/tools/fix-mockups.d.ts +21 -0
  49. package/dist/tools/fix-mockups.d.ts.map +1 -0
  50. package/dist/tools/fix-mockups.js +595 -0
  51. package/dist/tools/fix-mockups.js.map +1 -0
  52. package/dist/tools/generate-api-route.d.ts +18 -0
  53. package/dist/tools/generate-api-route.d.ts.map +1 -0
  54. package/dist/tools/generate-api-route.js +212 -0
  55. package/dist/tools/generate-api-route.js.map +1 -0
  56. package/dist/tools/generate-chatbot.d.ts +20 -0
  57. package/dist/tools/generate-chatbot.d.ts.map +1 -0
  58. package/dist/tools/generate-chatbot.js +555 -0
  59. package/dist/tools/generate-chatbot.js.map +1 -0
  60. package/dist/tools/generate-component.d.ts +18 -0
  61. package/dist/tools/generate-component.d.ts.map +1 -0
  62. package/dist/tools/generate-component.js +159 -0
  63. package/dist/tools/generate-component.js.map +1 -0
  64. package/dist/tools/generate-docs.d.ts +21 -0
  65. package/dist/tools/generate-docs.d.ts.map +1 -0
  66. package/dist/tools/generate-docs.js +782 -0
  67. package/dist/tools/generate-docs.js.map +1 -0
  68. package/dist/tools/generate-e2e-tests.d.ts +12 -0
  69. package/dist/tools/generate-e2e-tests.d.ts.map +1 -0
  70. package/dist/tools/generate-e2e-tests.js +37 -0
  71. package/dist/tools/generate-e2e-tests.js.map +1 -0
  72. package/dist/tools/generate-migration.d.ts +21 -0
  73. package/dist/tools/generate-migration.d.ts.map +1 -0
  74. package/dist/tools/generate-migration.js +94 -0
  75. package/dist/tools/generate-migration.js.map +1 -0
  76. package/dist/tools/generate-schema.d.ts +18 -0
  77. package/dist/tools/generate-schema.d.ts.map +1 -0
  78. package/dist/tools/generate-schema.js +422 -0
  79. package/dist/tools/generate-schema.js.map +1 -0
  80. package/dist/tools/generate-spec.d.ts +18 -0
  81. package/dist/tools/generate-spec.d.ts.map +1 -0
  82. package/dist/tools/generate-spec.js +446 -0
  83. package/dist/tools/generate-spec.js.map +1 -0
  84. package/dist/tools/generate-store-contracts.d.ts +17 -0
  85. package/dist/tools/generate-store-contracts.d.ts.map +1 -0
  86. package/dist/tools/generate-store-contracts.js +356 -0
  87. package/dist/tools/generate-store-contracts.js.map +1 -0
  88. package/dist/tools/generate-store.d.ts +16 -0
  89. package/dist/tools/generate-store.d.ts.map +1 -0
  90. package/dist/tools/generate-store.js +166 -0
  91. package/dist/tools/generate-store.js.map +1 -0
  92. package/dist/tools/generate-unit-tests.d.ts +14 -0
  93. package/dist/tools/generate-unit-tests.d.ts.map +1 -0
  94. package/dist/tools/generate-unit-tests.js +85 -0
  95. package/dist/tools/generate-unit-tests.js.map +1 -0
  96. package/dist/tools/get-context.d.ts +35 -0
  97. package/dist/tools/get-context.d.ts.map +1 -0
  98. package/dist/tools/get-context.js +367 -0
  99. package/dist/tools/get-context.js.map +1 -0
  100. package/dist/tools/init-session.d.ts +22 -0
  101. package/dist/tools/init-session.d.ts.map +1 -0
  102. package/dist/tools/init-session.js +232 -0
  103. package/dist/tools/init-session.js.map +1 -0
  104. package/dist/tools/map-dependencies.d.ts +25 -0
  105. package/dist/tools/map-dependencies.d.ts.map +1 -0
  106. package/dist/tools/map-dependencies.js +480 -0
  107. package/dist/tools/map-dependencies.js.map +1 -0
  108. package/dist/tools/optimize-performance.d.ts +18 -0
  109. package/dist/tools/optimize-performance.d.ts.map +1 -0
  110. package/dist/tools/optimize-performance.js +285 -0
  111. package/dist/tools/optimize-performance.js.map +1 -0
  112. package/dist/tools/run-interview.d.ts +23 -0
  113. package/dist/tools/run-interview.d.ts.map +1 -0
  114. package/dist/tools/run-interview.js +371 -0
  115. package/dist/tools/run-interview.js.map +1 -0
  116. package/dist/tools/run-tests.d.ts +12 -0
  117. package/dist/tools/run-tests.d.ts.map +1 -0
  118. package/dist/tools/run-tests.js +30 -0
  119. package/dist/tools/run-tests.js.map +1 -0
  120. package/dist/tools/scan-security.d.ts +19 -0
  121. package/dist/tools/scan-security.d.ts.map +1 -0
  122. package/dist/tools/scan-security.js +358 -0
  123. package/dist/tools/scan-security.js.map +1 -0
  124. package/dist/tools/validate-accessibility.d.ts +18 -0
  125. package/dist/tools/validate-accessibility.d.ts.map +1 -0
  126. package/dist/tools/validate-accessibility.js +251 -0
  127. package/dist/tools/validate-accessibility.js.map +1 -0
  128. package/dist/tools/validate-mockups.d.ts +21 -0
  129. package/dist/tools/validate-mockups.d.ts.map +1 -0
  130. package/dist/tools/validate-mockups.js +433 -0
  131. package/dist/tools/validate-mockups.js.map +1 -0
  132. package/dist/tools/verify-completeness.d.ts +13 -0
  133. package/dist/tools/verify-completeness.d.ts.map +1 -0
  134. package/dist/tools/verify-completeness.js +68 -0
  135. package/dist/tools/verify-completeness.js.map +1 -0
  136. package/dist/tools/verify-mockups.d.ts +14 -0
  137. package/dist/tools/verify-mockups.d.ts.map +1 -0
  138. package/dist/tools/verify-mockups.js +85 -0
  139. package/dist/tools/verify-mockups.js.map +1 -0
  140. package/package.json +50 -0
@@ -0,0 +1,285 @@
1
+ /**
2
+ * codebakers_optimize_performance
3
+ *
4
+ * Performance Optimization - Core Web Vitals
5
+ *
6
+ * Analyzes and optimizes:
7
+ * - Bundle size
8
+ * - Image optimization
9
+ * - Code splitting
10
+ * - Lazy loading
11
+ * - Core Web Vitals (LCP, FID, CLS)
12
+ */
13
+ import * as fs from 'fs/promises';
14
+ import * as path from 'path';
15
+ export async function optimizePerformance(args = {}) {
16
+ const cwd = process.cwd();
17
+ const { auto_fix = true } = args;
18
+ console.error('🍞 CodeBakers: Optimizing Performance');
19
+ try {
20
+ const optimizations = [];
21
+ // Optimization 1: Image optimization
22
+ const imageOpt = await optimizeImages(cwd, auto_fix);
23
+ optimizations.push(...imageOpt);
24
+ // Optimization 2: Code splitting
25
+ const splitOpt = await enableCodeSplitting(cwd, auto_fix);
26
+ optimizations.push(...splitOpt);
27
+ // Optimization 3: Lazy loading
28
+ const lazyOpt = await enableLazyLoading(cwd, auto_fix);
29
+ optimizations.push(...lazyOpt);
30
+ // Optimization 4: Bundle analysis
31
+ const bundleOpt = await analyzeBundleSize(cwd, auto_fix);
32
+ optimizations.push(...bundleOpt);
33
+ // Generate report
34
+ const report = generatePerfReport(optimizations);
35
+ // Save detailed report
36
+ const reportPath = path.join(cwd, '.codebakers', 'PERFORMANCE-REPORT.md');
37
+ await fs.mkdir(path.dirname(reportPath), { recursive: true });
38
+ await fs.writeFile(reportPath, generateDetailedPerfReport(optimizations), 'utf-8');
39
+ return report;
40
+ }
41
+ catch (error) {
42
+ return `🍞 CodeBakers: Performance Optimization Failed\n\nError: ${error instanceof Error ? error.message : String(error)}`;
43
+ }
44
+ }
45
+ async function optimizeImages(cwd, autoFix) {
46
+ const optimizations = [];
47
+ // Check if next.config.js has image optimization
48
+ const nextConfigPath = path.join(cwd, 'next.config.js');
49
+ try {
50
+ const content = await fs.readFile(nextConfigPath, 'utf-8');
51
+ if (!content.includes('images:') || !content.includes('formats:')) {
52
+ if (autoFix) {
53
+ // Add image optimization config
54
+ let updated = content;
55
+ if (!content.includes('images:')) {
56
+ // Add images config
57
+ updated = updated.replace(/module\.exports\s*=\s*{/, `module.exports = {\n images: {\n formats: ['image/avif', 'image/webp'],\n deviceSizes: [640, 750, 828, 1080, 1200, 1920],\n imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],\n },`);
58
+ }
59
+ await fs.writeFile(nextConfigPath, updated, 'utf-8');
60
+ optimizations.push({
61
+ type: 'Image Optimization',
62
+ impact: 'high',
63
+ description: 'Enabled AVIF/WebP formats + responsive sizes',
64
+ applied: true,
65
+ file: 'next.config.js'
66
+ });
67
+ }
68
+ else {
69
+ optimizations.push({
70
+ type: 'Image Optimization',
71
+ impact: 'high',
72
+ description: 'Configure image optimization in next.config.js',
73
+ applied: false
74
+ });
75
+ }
76
+ }
77
+ }
78
+ catch {
79
+ // next.config.js doesn't exist or can't read
80
+ }
81
+ return optimizations;
82
+ }
83
+ async function enableCodeSplitting(cwd, autoFix) {
84
+ const optimizations = [];
85
+ // Find large component files
86
+ const componentsDir = path.join(cwd, 'src', 'components');
87
+ try {
88
+ const files = await fs.readdir(componentsDir);
89
+ for (const file of files) {
90
+ if (!file.endsWith('.tsx') && !file.endsWith('.jsx'))
91
+ continue;
92
+ const filePath = path.join(componentsDir, file);
93
+ const content = await fs.readFile(filePath, 'utf-8');
94
+ // Check if large component (>500 lines) without dynamic import
95
+ const lines = content.split('\n').length;
96
+ if (lines > 500 && !content.includes('dynamic(') && !content.includes('lazy(')) {
97
+ if (autoFix) {
98
+ // Add comment suggesting dynamic import
99
+ const comment = `// Performance: Consider using dynamic import for this large component\n// import dynamic from 'next/dynamic';\n// const ${file.replace(/\.(tsx|jsx)$/, '')} = dynamic(() => import('./${file}'));\n\n`;
100
+ const updated = comment + content;
101
+ await fs.writeFile(filePath, updated, 'utf-8');
102
+ optimizations.push({
103
+ type: 'Code Splitting',
104
+ impact: 'medium',
105
+ description: `Added dynamic import suggestion to ${file} (${lines} lines)`,
106
+ applied: true,
107
+ file
108
+ });
109
+ }
110
+ else {
111
+ optimizations.push({
112
+ type: 'Code Splitting',
113
+ impact: 'medium',
114
+ description: `Consider dynamic import for ${file} (${lines} lines)`,
115
+ applied: false,
116
+ file
117
+ });
118
+ }
119
+ }
120
+ }
121
+ }
122
+ catch {
123
+ // Components directory doesn't exist
124
+ }
125
+ return optimizations;
126
+ }
127
+ async function enableLazyLoading(cwd, autoFix) {
128
+ const optimizations = [];
129
+ // Find pages and check for lazy loading
130
+ const pagesDir = path.join(cwd, 'src', 'app');
131
+ try {
132
+ await scanForLazyLoad(pagesDir, optimizations, autoFix);
133
+ }
134
+ catch {
135
+ // App directory doesn't exist
136
+ }
137
+ return optimizations;
138
+ }
139
+ async function scanForLazyLoad(dir, optimizations, autoFix) {
140
+ try {
141
+ const entries = await fs.readdir(dir, { withFileTypes: true });
142
+ for (const entry of entries) {
143
+ const fullPath = path.join(dir, entry.name);
144
+ if (entry.isDirectory()) {
145
+ await scanForLazyLoad(fullPath, optimizations, autoFix);
146
+ }
147
+ else if (entry.name === 'page.tsx' || entry.name === 'page.jsx') {
148
+ const content = await fs.readFile(fullPath, 'utf-8');
149
+ // Check if page imports heavy components without lazy loading
150
+ const heavyImports = [
151
+ 'react-pdf',
152
+ 'chart.js',
153
+ '@monaco-editor',
154
+ 'react-markdown',
155
+ 'react-quill'
156
+ ];
157
+ for (const heavy of heavyImports) {
158
+ if (content.includes(`from '${heavy}'`) && !content.includes('dynamic(')) {
159
+ if (autoFix) {
160
+ // Add dynamic import
161
+ let updated = content;
162
+ if (!updated.includes("import dynamic from 'next/dynamic'")) {
163
+ updated = "import dynamic from 'next/dynamic';\n" + updated;
164
+ }
165
+ await fs.writeFile(fullPath, updated, 'utf-8');
166
+ optimizations.push({
167
+ type: 'Lazy Loading',
168
+ impact: 'high',
169
+ description: `Suggested dynamic import for ${heavy} in ${path.basename(fullPath)}`,
170
+ applied: true,
171
+ file: fullPath
172
+ });
173
+ }
174
+ else {
175
+ optimizations.push({
176
+ type: 'Lazy Loading',
177
+ impact: 'high',
178
+ description: `Use dynamic import for ${heavy} in ${path.basename(fullPath)}`,
179
+ applied: false,
180
+ file: fullPath
181
+ });
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+ catch {
189
+ // Directory doesn't exist
190
+ }
191
+ }
192
+ async function analyzeBundleSize(cwd, autoFix) {
193
+ const optimizations = [];
194
+ // Check package.json for bundle analyzer
195
+ const packagePath = path.join(cwd, 'package.json');
196
+ try {
197
+ const content = await fs.readFile(packagePath, 'utf-8');
198
+ const pkg = JSON.parse(content);
199
+ if (!pkg.scripts?.['analyze']) {
200
+ if (autoFix) {
201
+ pkg.scripts = pkg.scripts || {};
202
+ pkg.scripts.analyze = 'ANALYZE=true next build';
203
+ // Add bundle analyzer dependency
204
+ pkg.devDependencies = pkg.devDependencies || {};
205
+ pkg.devDependencies['@next/bundle-analyzer'] = '^14.0.0';
206
+ await fs.writeFile(packagePath, JSON.stringify(pkg, null, 2), 'utf-8');
207
+ optimizations.push({
208
+ type: 'Bundle Analysis',
209
+ impact: 'low',
210
+ description: 'Added bundle analyzer script (run: pnpm analyze)',
211
+ applied: true,
212
+ file: 'package.json'
213
+ });
214
+ }
215
+ else {
216
+ optimizations.push({
217
+ type: 'Bundle Analysis',
218
+ impact: 'low',
219
+ description: 'Add bundle analyzer to track bundle size',
220
+ applied: false
221
+ });
222
+ }
223
+ }
224
+ }
225
+ catch {
226
+ // package.json doesn't exist or can't parse
227
+ }
228
+ return optimizations;
229
+ }
230
+ function generatePerfReport(optimizations) {
231
+ const applied = optimizations.filter(o => o.applied).length;
232
+ const highImpact = optimizations.filter(o => o.impact === 'high').length;
233
+ let report = `🍞 CodeBakers: Performance Optimization\n\n`;
234
+ report += `**Optimizations applied:** ${applied}/${optimizations.length}\n`;
235
+ report += `**High impact:** ${highImpact}\n\n`;
236
+ if (applied > 0) {
237
+ report += `## Applied Optimizations\n\n`;
238
+ for (const opt of optimizations.filter(o => o.applied)) {
239
+ const emoji = opt.impact === 'high' ? '⚡' : opt.impact === 'medium' ? '🔧' : '📊';
240
+ report += `${emoji} **${opt.type}** (${opt.impact} impact)\n`;
241
+ report += ` ${opt.description}\n\n`;
242
+ }
243
+ }
244
+ const remaining = optimizations.filter(o => !o.applied);
245
+ if (remaining.length > 0) {
246
+ report += `## Suggested Optimizations\n\n`;
247
+ for (const opt of remaining.slice(0, 5)) {
248
+ report += `- ${opt.description}\n`;
249
+ }
250
+ report += `\n`;
251
+ }
252
+ report += `## Expected Impact\n\n`;
253
+ report += `- Faster initial page load (LCP improved)\n`;
254
+ report += `- Reduced bundle size (faster downloads)\n`;
255
+ report += `- Better mobile performance\n`;
256
+ report += `- Improved Lighthouse score\n\n`;
257
+ report += `**Full report:** .codebakers/PERFORMANCE-REPORT.md\n`;
258
+ return report;
259
+ }
260
+ function generateDetailedPerfReport(optimizations) {
261
+ let report = `# Performance Optimization Report\n\n`;
262
+ report += `**Generated:** ${new Date().toISOString()}\n\n`;
263
+ report += `## Summary\n\n`;
264
+ report += `| Impact | Applied | Remaining |\n`;
265
+ report += `|--------|---------|----------|\n`;
266
+ report += `| High | ${optimizations.filter(o => o.impact === 'high' && o.applied).length} | ${optimizations.filter(o => o.impact === 'high' && !o.applied).length} |\n`;
267
+ report += `| Medium | ${optimizations.filter(o => o.impact === 'medium' && o.applied).length} | ${optimizations.filter(o => o.impact === 'medium' && !o.applied).length} |\n`;
268
+ report += `| Low | ${optimizations.filter(o => o.impact === 'low' && o.applied).length} | ${optimizations.filter(o => o.impact === 'low' && !o.applied).length} |\n\n`;
269
+ report += `## All Optimizations\n\n`;
270
+ for (const opt of optimizations) {
271
+ report += `### ${opt.type} (${opt.impact} impact)\n\n`;
272
+ report += `- **Status:** ${opt.applied ? '✅ Applied' : '⏳ Pending'}\n`;
273
+ report += `- **Description:** ${opt.description}\n`;
274
+ if (opt.file) {
275
+ report += `- **File:** ${opt.file}\n`;
276
+ }
277
+ report += `\n`;
278
+ }
279
+ report += `## Next Steps\n\n`;
280
+ report += `1. Run: \`pnpm analyze\` to visualize bundle size\n`;
281
+ report += `2. Test Lighthouse score: \`pnpm build && pnpm start\`\n`;
282
+ report += `3. Monitor Core Web Vitals in production\n`;
283
+ return report;
284
+ }
285
+ //# sourceMappingURL=optimize-performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimize-performance.js","sourceRoot":"","sources":["../../src/tools/optimize-performance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * codebakers_run_interview
3
+ *
4
+ * Automated Interview Agent (Phase 1)
5
+ *
6
+ * Automates project interview to generate:
7
+ * - project-profile.md (intent, external services, constraints)
8
+ * - FLOWS.md (all user flows with status)
9
+ * - CREDENTIALS-NEEDED.md (external actions needed)
10
+ * - BRAIN.md initialization
11
+ *
12
+ * Reads from (if exist):
13
+ * - refs/prd/ (requirements)
14
+ * - refs/design/ (mockups - uses DESIGN-CONTRACT.md if exists)
15
+ * - refs/api/ (API docs)
16
+ * - INTEGRATION-CONFIG.md (if integrations tested)
17
+ *
18
+ * Output: Complete Phase 1 artifacts ready for Phase 2
19
+ */
20
+ export declare function runInterview(args: {
21
+ project_description?: string;
22
+ }): Promise<string>;
23
+ //# sourceMappingURL=run-interview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-interview.d.ts","sourceRoot":"","sources":["../../src/tools/run-interview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAoCH,wBAAsB,YAAY,CAAC,IAAI,EAAE;IAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B1F"}