@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.
- package/INSTALL.md +221 -0
- package/LICENSE +21 -0
- package/README.md +412 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +236 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +526 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/analyze-mockups.d.ts +18 -0
- package/dist/tools/analyze-mockups.d.ts.map +1 -0
- package/dist/tools/analyze-mockups.js +497 -0
- package/dist/tools/analyze-mockups.js.map +1 -0
- package/dist/tools/autonomous-build.d.ts +19 -0
- package/dist/tools/autonomous-build.d.ts.map +1 -0
- package/dist/tools/autonomous-build.js +287 -0
- package/dist/tools/autonomous-build.js.map +1 -0
- package/dist/tools/check-gate.d.ts +21 -0
- package/dist/tools/check-gate.d.ts.map +1 -0
- package/dist/tools/check-gate.js +446 -0
- package/dist/tools/check-gate.js.map +1 -0
- package/dist/tools/check-scope.d.ts +22 -0
- package/dist/tools/check-scope.d.ts.map +1 -0
- package/dist/tools/check-scope.js +251 -0
- package/dist/tools/check-scope.js.map +1 -0
- package/dist/tools/deploy-vercel.d.ts +18 -0
- package/dist/tools/deploy-vercel.d.ts.map +1 -0
- package/dist/tools/deploy-vercel.js +178 -0
- package/dist/tools/deploy-vercel.js.map +1 -0
- package/dist/tools/diagnose-error.d.ts +20 -0
- package/dist/tools/diagnose-error.d.ts.map +1 -0
- package/dist/tools/diagnose-error.js +351 -0
- package/dist/tools/diagnose-error.js.map +1 -0
- package/dist/tools/enforce-feature.d.ts +25 -0
- package/dist/tools/enforce-feature.d.ts.map +1 -0
- package/dist/tools/enforce-feature.js +387 -0
- package/dist/tools/enforce-feature.js.map +1 -0
- package/dist/tools/execute-atomic-unit.d.ts +23 -0
- package/dist/tools/execute-atomic-unit.d.ts.map +1 -0
- package/dist/tools/execute-atomic-unit.js +107 -0
- package/dist/tools/execute-atomic-unit.js.map +1 -0
- package/dist/tools/fix-commit.d.ts +23 -0
- package/dist/tools/fix-commit.d.ts.map +1 -0
- package/dist/tools/fix-commit.js +213 -0
- package/dist/tools/fix-commit.js.map +1 -0
- package/dist/tools/fix-mockups.d.ts +21 -0
- package/dist/tools/fix-mockups.d.ts.map +1 -0
- package/dist/tools/fix-mockups.js +595 -0
- package/dist/tools/fix-mockups.js.map +1 -0
- package/dist/tools/generate-api-route.d.ts +18 -0
- package/dist/tools/generate-api-route.d.ts.map +1 -0
- package/dist/tools/generate-api-route.js +212 -0
- package/dist/tools/generate-api-route.js.map +1 -0
- package/dist/tools/generate-chatbot.d.ts +20 -0
- package/dist/tools/generate-chatbot.d.ts.map +1 -0
- package/dist/tools/generate-chatbot.js +555 -0
- package/dist/tools/generate-chatbot.js.map +1 -0
- package/dist/tools/generate-component.d.ts +18 -0
- package/dist/tools/generate-component.d.ts.map +1 -0
- package/dist/tools/generate-component.js +159 -0
- package/dist/tools/generate-component.js.map +1 -0
- package/dist/tools/generate-docs.d.ts +21 -0
- package/dist/tools/generate-docs.d.ts.map +1 -0
- package/dist/tools/generate-docs.js +782 -0
- package/dist/tools/generate-docs.js.map +1 -0
- package/dist/tools/generate-e2e-tests.d.ts +12 -0
- package/dist/tools/generate-e2e-tests.d.ts.map +1 -0
- package/dist/tools/generate-e2e-tests.js +37 -0
- package/dist/tools/generate-e2e-tests.js.map +1 -0
- package/dist/tools/generate-migration.d.ts +21 -0
- package/dist/tools/generate-migration.d.ts.map +1 -0
- package/dist/tools/generate-migration.js +94 -0
- package/dist/tools/generate-migration.js.map +1 -0
- package/dist/tools/generate-schema.d.ts +18 -0
- package/dist/tools/generate-schema.d.ts.map +1 -0
- package/dist/tools/generate-schema.js +422 -0
- package/dist/tools/generate-schema.js.map +1 -0
- package/dist/tools/generate-spec.d.ts +18 -0
- package/dist/tools/generate-spec.d.ts.map +1 -0
- package/dist/tools/generate-spec.js +446 -0
- package/dist/tools/generate-spec.js.map +1 -0
- package/dist/tools/generate-store-contracts.d.ts +17 -0
- package/dist/tools/generate-store-contracts.d.ts.map +1 -0
- package/dist/tools/generate-store-contracts.js +356 -0
- package/dist/tools/generate-store-contracts.js.map +1 -0
- package/dist/tools/generate-store.d.ts +16 -0
- package/dist/tools/generate-store.d.ts.map +1 -0
- package/dist/tools/generate-store.js +166 -0
- package/dist/tools/generate-store.js.map +1 -0
- package/dist/tools/generate-unit-tests.d.ts +14 -0
- package/dist/tools/generate-unit-tests.d.ts.map +1 -0
- package/dist/tools/generate-unit-tests.js +85 -0
- package/dist/tools/generate-unit-tests.js.map +1 -0
- package/dist/tools/get-context.d.ts +35 -0
- package/dist/tools/get-context.d.ts.map +1 -0
- package/dist/tools/get-context.js +367 -0
- package/dist/tools/get-context.js.map +1 -0
- package/dist/tools/init-session.d.ts +22 -0
- package/dist/tools/init-session.d.ts.map +1 -0
- package/dist/tools/init-session.js +232 -0
- package/dist/tools/init-session.js.map +1 -0
- package/dist/tools/map-dependencies.d.ts +25 -0
- package/dist/tools/map-dependencies.d.ts.map +1 -0
- package/dist/tools/map-dependencies.js +480 -0
- package/dist/tools/map-dependencies.js.map +1 -0
- package/dist/tools/optimize-performance.d.ts +18 -0
- package/dist/tools/optimize-performance.d.ts.map +1 -0
- package/dist/tools/optimize-performance.js +285 -0
- package/dist/tools/optimize-performance.js.map +1 -0
- package/dist/tools/run-interview.d.ts +23 -0
- package/dist/tools/run-interview.d.ts.map +1 -0
- package/dist/tools/run-interview.js +371 -0
- package/dist/tools/run-interview.js.map +1 -0
- package/dist/tools/run-tests.d.ts +12 -0
- package/dist/tools/run-tests.d.ts.map +1 -0
- package/dist/tools/run-tests.js +30 -0
- package/dist/tools/run-tests.js.map +1 -0
- package/dist/tools/scan-security.d.ts +19 -0
- package/dist/tools/scan-security.d.ts.map +1 -0
- package/dist/tools/scan-security.js +358 -0
- package/dist/tools/scan-security.js.map +1 -0
- package/dist/tools/validate-accessibility.d.ts +18 -0
- package/dist/tools/validate-accessibility.d.ts.map +1 -0
- package/dist/tools/validate-accessibility.js +251 -0
- package/dist/tools/validate-accessibility.js.map +1 -0
- package/dist/tools/validate-mockups.d.ts +21 -0
- package/dist/tools/validate-mockups.d.ts.map +1 -0
- package/dist/tools/validate-mockups.js +433 -0
- package/dist/tools/validate-mockups.js.map +1 -0
- package/dist/tools/verify-completeness.d.ts +13 -0
- package/dist/tools/verify-completeness.d.ts.map +1 -0
- package/dist/tools/verify-completeness.js +68 -0
- package/dist/tools/verify-completeness.js.map +1 -0
- package/dist/tools/verify-mockups.d.ts +14 -0
- package/dist/tools/verify-mockups.d.ts.map +1 -0
- package/dist/tools/verify-mockups.js +85 -0
- package/dist/tools/verify-mockups.js.map +1 -0
- 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"}
|