@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,497 @@
1
+ /**
2
+ * codebakers_analyze_mockups_deep
3
+ *
4
+ * Phase 2A: Deep mockup analysis
5
+ * Extracts ALL data fields, relationships, and interactions from UI mockups
6
+ *
7
+ * Based on CodeBakers Method Phase 2 requirements:
8
+ * - All data fields displayed and their data types
9
+ * - All form inputs and the entity they mutate
10
+ * - All filters, sorts, and search parameters
11
+ * - All computed or aggregated values
12
+ * - All relationships between entities implied by the UI
13
+ * - All status values and state machines
14
+ */
15
+ import * as fs from 'fs/promises';
16
+ import * as path from 'path';
17
+ export async function analyzeMockupsDeep(args) {
18
+ const cwd = process.cwd();
19
+ const mockupFolder = args.mockup_folder || 'refs/design/';
20
+ const mockupPath = path.join(cwd, mockupFolder);
21
+ console.error('🍞 CodeBakers: Phase 2A — Deep Mockup Analysis');
22
+ console.error(`Analyzing mockups in: ${mockupPath}`);
23
+ try {
24
+ // 1. CHECK IF MOCKUP FOLDER EXISTS
25
+ const exists = await fs.access(mockupPath).then(() => true).catch(() => false);
26
+ if (!exists) {
27
+ return `🍞 CodeBakers: Phase 2A - Deep Mockup Analysis
28
+
29
+ ❌ BLOCKER: Mockup folder not found
30
+
31
+ Expected location: ${mockupPath}
32
+
33
+ Phase 2 cannot proceed without mockups. You must complete Phase 1 first.
34
+
35
+ Next step: Run Phase 1 to create UI mockups, then return to Phase 2.`;
36
+ }
37
+ // 2. READ ALL MOCKUP FILES
38
+ const files = await fs.readdir(mockupPath);
39
+ const mockupFiles = files.filter(f => f.endsWith('.html') ||
40
+ f.endsWith('.jsx') ||
41
+ f.endsWith('.tsx') ||
42
+ f.endsWith('.md'));
43
+ if (mockupFiles.length === 0) {
44
+ return `🍞 CodeBakers: Phase 2A - Deep Mockup Analysis
45
+
46
+ ⚠️ WARNING: No mockup files found in ${mockupPath}
47
+
48
+ Supported formats: .html, .jsx, .tsx, .md
49
+
50
+ Phase 1 may be incomplete. Verify mockups exist before proceeding to Phase 2.`;
51
+ }
52
+ console.error(`Found ${mockupFiles.length} mockup files`);
53
+ // 3. ANALYZE EACH MOCKUP
54
+ const analyses = [];
55
+ for (const file of mockupFiles) {
56
+ const filePath = path.join(mockupPath, file);
57
+ const content = await fs.readFile(filePath, 'utf-8');
58
+ console.error(`Analyzing: ${file}`);
59
+ const analysis = await analyzeSingleMockup(file, content);
60
+ analyses.push(analysis);
61
+ }
62
+ // 4. GENERATE MOCK-ANALYSIS.md
63
+ const analysisContent = generateMockAnalysisDocument(analyses);
64
+ const outputPath = path.join(cwd, '.codebakers', 'MOCK-ANALYSIS.md');
65
+ // Ensure .codebakers folder exists
66
+ await fs.mkdir(path.join(cwd, '.codebakers'), { recursive: true });
67
+ await fs.writeFile(outputPath, analysisContent, 'utf-8');
68
+ console.error(`✓ Analysis complete: ${outputPath}`);
69
+ // 5. GENERATE SUMMARY FOR USER
70
+ const summary = generateAnalysisSummary(analyses);
71
+ return `🍞 CodeBakers: Phase 2A - Deep Mockup Analysis Complete
72
+
73
+ ${summary}
74
+
75
+ 📄 Full analysis written to: .codebakers/MOCK-ANALYSIS.md
76
+
77
+ Next steps:
78
+ 1. Review MOCK-ANALYSIS.md to verify all data captured
79
+ 2. Proceed to Phase 2B: Schema Generation (use tool: codebakers_generate_schema)
80
+ 3. Then Phase 2C: Dependency Mapping (use tool: codebakers_map_dependencies)
81
+
82
+ Verification gate requirement:
83
+ → Every data field in every mockup must have a corresponding database column
84
+ → All entity relationships must be captured
85
+ → No unresolved dependencies`;
86
+ }
87
+ catch (error) {
88
+ console.error('Error during mockup analysis:', error);
89
+ return `🍞 CodeBakers: Phase 2A - Deep Mockup Analysis Failed
90
+
91
+ Error: ${error instanceof Error ? error.message : String(error)}
92
+
93
+ Please check:
94
+ - Mockup folder exists and is readable
95
+ - Mockup files are valid format (.html, .jsx, .tsx, .md)
96
+ - File permissions allow reading
97
+
98
+ If issue persists, log to ERROR-LOG.md and request human assistance.`;
99
+ }
100
+ }
101
+ /**
102
+ * Analyzes a single mockup file to extract data elements
103
+ */
104
+ async function analyzeSingleMockup(filename, content) {
105
+ const analysis = {
106
+ screen_name: filename.replace(/\.(html|jsx|tsx|md)$/, ''),
107
+ screen_path: filename,
108
+ data_fields: [],
109
+ form_inputs: [],
110
+ filters: [],
111
+ relationships: [],
112
+ state_machines: [],
113
+ computed_values: [],
114
+ notes: [],
115
+ };
116
+ // PATTERN DETECTION RULES
117
+ // These patterns identify data elements in mockup code/markup
118
+ // 1. DETECT DATA FIELDS
119
+ // Look for: {user.name}, {email}, data-field="...", etc.
120
+ const dataFieldPatterns = [
121
+ /\{(\w+)\.(\w+)\}/g, // {user.name}
122
+ /\{(\w+)\}/g, // {email}
123
+ /data-field=["'](\w+)["']/g, // data-field="name"
124
+ /<td[^>]*>(\w+)<\/td>/g, // <td>name</td>
125
+ /<span[^>]*>(\w+):<\/span>/g, // <span>Name:</span>
126
+ ];
127
+ for (const pattern of dataFieldPatterns) {
128
+ let match;
129
+ while ((match = pattern.exec(content)) !== null) {
130
+ const fieldName = match[2] || match[1];
131
+ if (fieldName && !isIgnoredField(fieldName)) {
132
+ analysis.data_fields.push({
133
+ field_name: fieldName,
134
+ data_type: inferDataType(fieldName, content),
135
+ source_entity: inferEntity(fieldName, content),
136
+ is_required: content.includes(`required`) && content.includes(fieldName),
137
+ is_computed: isComputedField(fieldName),
138
+ computation_rule: isComputedField(fieldName) ? inferComputationRule(fieldName) : undefined,
139
+ });
140
+ }
141
+ }
142
+ }
143
+ // 2. DETECT FORM INPUTS
144
+ const inputPatterns = [
145
+ /<input[^>]*name=["'](\w+)["'][^>]*type=["'](\w+)["'][^>]*>/g,
146
+ /<input[^>]*type=["'](\w+)["'][^>]*name=["'](\w+)["'][^>]*>/g,
147
+ /<textarea[^>]*name=["'](\w+)["'][^>]*>/g,
148
+ /<select[^>]*name=["'](\w+)["'][^>]*>/g,
149
+ ];
150
+ for (const pattern of inputPatterns) {
151
+ let match;
152
+ while ((match = pattern.exec(content)) !== null) {
153
+ const inputName = match[1] || match[2];
154
+ const inputType = match[2] || match[1] || 'text';
155
+ if (inputName && !isIgnoredField(inputName)) {
156
+ analysis.form_inputs.push({
157
+ input_name: inputName,
158
+ input_type: inputType,
159
+ target_entity: inferEntity(inputName, content),
160
+ validation_rules: extractValidationRules(inputName, content),
161
+ is_required: content.includes(`required`) && content.includes(inputName),
162
+ });
163
+ }
164
+ }
165
+ }
166
+ // 3. DETECT FILTERS, SORTS, SEARCH
167
+ const filterPatterns = [
168
+ /filter[^>]*by[^>]*(\w+)/gi,
169
+ /sort[^>]*by[^>]*(\w+)/gi,
170
+ /search[^>]*(\w+)/gi,
171
+ /placeholder=["']Search (\w+)["']/gi,
172
+ ];
173
+ for (const pattern of filterPatterns) {
174
+ let match;
175
+ while ((match = pattern.exec(content)) !== null) {
176
+ const filterName = match[1];
177
+ if (filterName && !isIgnoredField(filterName)) {
178
+ analysis.filters.push({
179
+ filter_name: filterName,
180
+ applies_to_entity: inferEntity(filterName, content),
181
+ filter_type: inferFilterType(match[0]),
182
+ values: extractFilterValues(filterName, content),
183
+ });
184
+ }
185
+ }
186
+ }
187
+ // 4. DETECT RELATIONSHIPS
188
+ // Look for nested data structures: user.posts, order.items, etc.
189
+ const relationshipPattern = /\{(\w+)\.(\w+)\.(\w+)\}/g;
190
+ let match;
191
+ while ((match = relationshipPattern.exec(content)) !== null) {
192
+ const fromEntity = match[1];
193
+ const throughEntity = match[2];
194
+ if (!isIgnoredField(fromEntity) && !isIgnoredField(throughEntity)) {
195
+ analysis.relationships.push({
196
+ from_entity: fromEntity,
197
+ to_entity: throughEntity,
198
+ relationship_type: '1:many', // Default assumption
199
+ implied_by: `Data reference: ${match[0]}`,
200
+ });
201
+ }
202
+ }
203
+ // 5. DETECT STATE MACHINES
204
+ // Look for status indicators, badges, state values
205
+ const statePatterns = [
206
+ /status[^>]*:?\s*["']?(\w+)["']?/gi,
207
+ /state[^>]*:?\s*["']?(\w+)["']?/gi,
208
+ /badge[^>]*>(\w+)</gi,
209
+ ];
210
+ for (const pattern of statePatterns) {
211
+ let match;
212
+ while ((match = pattern.exec(content)) !== null) {
213
+ const stateValue = match[1];
214
+ if (stateValue && !isIgnoredField(stateValue)) {
215
+ // Try to find all possible values for this state
216
+ const possibleValues = extractStateValues(content);
217
+ analysis.state_machines.push({
218
+ entity: inferEntity(stateValue, content),
219
+ state_field: 'status', // Default field name
220
+ possible_values: possibleValues.length > 0 ? possibleValues : [stateValue],
221
+ transitions: [], // Would need more complex analysis
222
+ });
223
+ }
224
+ }
225
+ }
226
+ // 6. DETECT COMPUTED VALUES
227
+ // Look for aggregations: total, count, sum, average, etc.
228
+ const computedPatterns = [
229
+ /total[^>]*:?\s*\{?(\w+)\}?/gi,
230
+ /count[^>]*:?\s*\{?(\w+)\}?/gi,
231
+ /sum[^>]*:?\s*\{?(\w+)\}?/gi,
232
+ /average[^>]*:?\s*\{?(\w+)\}?/gi,
233
+ /\{(\w+\.length)\}/g,
234
+ /\{(\w+\.count)\}/g,
235
+ ];
236
+ for (const pattern of computedPatterns) {
237
+ let match;
238
+ while ((match = pattern.exec(content)) !== null) {
239
+ const computedField = match[1];
240
+ if (computedField && !isIgnoredField(computedField)) {
241
+ analysis.computed_values.push({
242
+ field_name: computedField,
243
+ data_type: 'number',
244
+ source_entity: inferEntity(computedField, content),
245
+ is_required: false,
246
+ is_computed: true,
247
+ computation_rule: inferComputationRule(computedField),
248
+ });
249
+ }
250
+ }
251
+ }
252
+ // 7. ADD ANALYSIS NOTES
253
+ if (analysis.data_fields.length === 0 && analysis.form_inputs.length === 0) {
254
+ analysis.notes.push('⚠️ No data fields or form inputs detected - verify mockup contains data');
255
+ }
256
+ return analysis;
257
+ }
258
+ /**
259
+ * Generate the complete MOCK-ANALYSIS.md document
260
+ */
261
+ function generateMockAnalysisDocument(analyses) {
262
+ let doc = `# Mock Analysis\n`;
263
+ doc += `**Generated:** ${new Date().toISOString()}\n`;
264
+ doc += `**Phase:** 2A - Mock Analysis\n`;
265
+ doc += `**Purpose:** Extract all data fields, relationships, and interactions from UI mockups\n\n`;
266
+ doc += `---\n\n`;
267
+ // Summary statistics
268
+ const totalFields = analyses.reduce((sum, a) => sum + a.data_fields.length, 0);
269
+ const totalInputs = analyses.reduce((sum, a) => sum + a.form_inputs.length, 0);
270
+ const totalFilters = analyses.reduce((sum, a) => sum + a.filters.length, 0);
271
+ const totalRelationships = analyses.reduce((sum, a) => sum + a.relationships.length, 0);
272
+ doc += `## Summary\n\n`;
273
+ doc += `- **Mockups analyzed:** ${analyses.length}\n`;
274
+ doc += `- **Data fields extracted:** ${totalFields}\n`;
275
+ doc += `- **Form inputs extracted:** ${totalInputs}\n`;
276
+ doc += `- **Filters/sorts extracted:** ${totalFilters}\n`;
277
+ doc += `- **Relationships identified:** ${totalRelationships}\n\n`;
278
+ doc += `---\n\n`;
279
+ // Per-screen analysis
280
+ for (const analysis of analyses) {
281
+ doc += `## Screen: ${analysis.screen_name}\n\n`;
282
+ doc += `**File:** \`${analysis.screen_path}\`\n\n`;
283
+ // Data fields
284
+ if (analysis.data_fields.length > 0) {
285
+ doc += `### Data Fields Displayed\n\n`;
286
+ doc += `| Field Name | Data Type | Source Entity | Required | Computed |\n`;
287
+ doc += `|------------|-----------|---------------|----------|----------|\n`;
288
+ for (const field of analysis.data_fields) {
289
+ doc += `| ${field.field_name} | ${field.data_type} | ${field.source_entity} | ${field.is_required ? 'Yes' : 'No'} | ${field.is_computed ? 'Yes' : 'No'} |\n`;
290
+ }
291
+ doc += `\n`;
292
+ }
293
+ // Form inputs
294
+ if (analysis.form_inputs.length > 0) {
295
+ doc += `### Form Inputs\n\n`;
296
+ doc += `| Input Name | Type | Target Entity | Required | Validation Rules |\n`;
297
+ doc += `|------------|------|---------------|----------|------------------|\n`;
298
+ for (const input of analysis.form_inputs) {
299
+ doc += `| ${input.input_name} | ${input.input_type} | ${input.target_entity} | ${input.is_required ? 'Yes' : 'No'} | ${input.validation_rules.join(', ') || 'None'} |\n`;
300
+ }
301
+ doc += `\n`;
302
+ }
303
+ // Filters
304
+ if (analysis.filters.length > 0) {
305
+ doc += `### Filters & Sorts\n\n`;
306
+ doc += `| Filter Name | Type | Applies To | Values |\n`;
307
+ doc += `|-------------|------|------------|--------|\n`;
308
+ for (const filter of analysis.filters) {
309
+ doc += `| ${filter.filter_name} | ${filter.filter_type} | ${filter.applies_to_entity} | ${filter.values?.join(', ') || 'Dynamic'} |\n`;
310
+ }
311
+ doc += `\n`;
312
+ }
313
+ // Relationships
314
+ if (analysis.relationships.length > 0) {
315
+ doc += `### Entity Relationships\n\n`;
316
+ doc += `| From Entity | To Entity | Type | Implied By |\n`;
317
+ doc += `|-------------|-----------|------|------------|\n`;
318
+ for (const rel of analysis.relationships) {
319
+ doc += `| ${rel.from_entity} | ${rel.to_entity} | ${rel.relationship_type} | ${rel.implied_by} |\n`;
320
+ }
321
+ doc += `\n`;
322
+ }
323
+ // State machines
324
+ if (analysis.state_machines.length > 0) {
325
+ doc += `### State Values\n\n`;
326
+ doc += `| Entity | State Field | Possible Values |\n`;
327
+ doc += `|--------|-------------|----------------|\n`;
328
+ for (const state of analysis.state_machines) {
329
+ doc += `| ${state.entity} | ${state.state_field} | ${state.possible_values.join(', ')} |\n`;
330
+ }
331
+ doc += `\n`;
332
+ }
333
+ // Computed values
334
+ if (analysis.computed_values.length > 0) {
335
+ doc += `### Computed/Aggregated Values\n\n`;
336
+ doc += `| Field Name | Computation Rule | Source Entity |\n`;
337
+ doc += `|------------|------------------|---------------|\n`;
338
+ for (const computed of analysis.computed_values) {
339
+ doc += `| ${computed.field_name} | ${computed.computation_rule || 'Derived'} | ${computed.source_entity} |\n`;
340
+ }
341
+ doc += `\n`;
342
+ }
343
+ // Notes
344
+ if (analysis.notes.length > 0) {
345
+ doc += `### Analysis Notes\n\n`;
346
+ for (const note of analysis.notes) {
347
+ doc += `- ${note}\n`;
348
+ }
349
+ doc += `\n`;
350
+ }
351
+ doc += `---\n\n`;
352
+ }
353
+ // Entity extraction summary
354
+ doc += `## Extracted Entities\n\n`;
355
+ doc += `Based on mockup analysis, the following entities were identified:\n\n`;
356
+ const entities = new Set();
357
+ for (const analysis of analyses) {
358
+ for (const field of analysis.data_fields) {
359
+ entities.add(field.source_entity);
360
+ }
361
+ for (const input of analysis.form_inputs) {
362
+ entities.add(input.target_entity);
363
+ }
364
+ }
365
+ for (const entity of Array.from(entities).sort()) {
366
+ doc += `- **${entity}**\n`;
367
+ }
368
+ doc += `\n`;
369
+ doc += `---\n\n`;
370
+ doc += `## Next Steps\n\n`;
371
+ doc += `1. **Review this analysis** - Verify all data elements captured\n`;
372
+ doc += `2. **Phase 2B** - Generate database schema from this analysis\n`;
373
+ doc += `3. **Phase 2C** - Map all dependencies\n`;
374
+ doc += `4. **Verification Gate** - Confirm every field has a corresponding schema column\n\n`;
375
+ return doc;
376
+ }
377
+ /**
378
+ * Generate summary for tool response
379
+ */
380
+ function generateAnalysisSummary(analyses) {
381
+ const totalFields = analyses.reduce((sum, a) => sum + a.data_fields.length, 0);
382
+ const totalInputs = analyses.reduce((sum, a) => sum + a.form_inputs.length, 0);
383
+ const totalRelationships = analyses.reduce((sum, a) => sum + a.relationships.length, 0);
384
+ const entities = new Set();
385
+ for (const analysis of analyses) {
386
+ for (const field of analysis.data_fields) {
387
+ entities.add(field.source_entity);
388
+ }
389
+ }
390
+ let summary = `✓ Analyzed ${analyses.length} mockup screens\n`;
391
+ summary += `✓ Extracted ${totalFields} data fields\n`;
392
+ summary += `✓ Extracted ${totalInputs} form inputs\n`;
393
+ summary += `✓ Identified ${totalRelationships} entity relationships\n`;
394
+ summary += `✓ Identified ${entities.size} distinct entities\n`;
395
+ return summary;
396
+ }
397
+ // HELPER FUNCTIONS
398
+ function isIgnoredField(field) {
399
+ const ignored = ['div', 'span', 'button', 'true', 'false', 'null', 'undefined', 'className', 'onClick'];
400
+ return ignored.includes(field.toLowerCase());
401
+ }
402
+ function inferDataType(fieldName, context) {
403
+ const lowerField = fieldName.toLowerCase();
404
+ if (lowerField.includes('date') || lowerField.includes('created') || lowerField.includes('updated'))
405
+ return 'timestamp';
406
+ if (lowerField.includes('email'))
407
+ return 'email';
408
+ if (lowerField.includes('phone'))
409
+ return 'phone';
410
+ if (lowerField.includes('url') || lowerField.includes('link'))
411
+ return 'url';
412
+ if (lowerField.includes('id') || lowerField.endsWith('_id'))
413
+ return 'uuid';
414
+ if (lowerField.includes('count') || lowerField.includes('total') || lowerField.includes('amount'))
415
+ return 'number';
416
+ if (lowerField.includes('is_') || lowerField.includes('has_'))
417
+ return 'boolean';
418
+ if (lowerField.includes('price') || lowerField.includes('cost'))
419
+ return 'decimal';
420
+ return 'text';
421
+ }
422
+ function inferEntity(fieldName, context) {
423
+ // Try to extract entity from field name patterns
424
+ const parts = fieldName.split('_');
425
+ if (parts.length > 1) {
426
+ return parts[0]; // e.g., user_name → user
427
+ }
428
+ // Check context for entity clues
429
+ if (context.includes('user.'))
430
+ return 'user';
431
+ if (context.includes('post.'))
432
+ return 'post';
433
+ if (context.includes('order.'))
434
+ return 'order';
435
+ if (context.includes('product.'))
436
+ return 'product';
437
+ return 'unknown';
438
+ }
439
+ function isComputedField(fieldName) {
440
+ const computedKeywords = ['total', 'count', 'sum', 'average', 'length', 'size'];
441
+ return computedKeywords.some(kw => fieldName.toLowerCase().includes(kw));
442
+ }
443
+ function inferComputationRule(fieldName) {
444
+ const lower = fieldName.toLowerCase();
445
+ if (lower.includes('total'))
446
+ return 'SUM of related values';
447
+ if (lower.includes('count'))
448
+ return 'COUNT of related items';
449
+ if (lower.includes('average'))
450
+ return 'AVERAGE of related values';
451
+ if (lower.includes('length'))
452
+ return 'COUNT of array items';
453
+ return 'Derived value';
454
+ }
455
+ function extractValidationRules(inputName, context) {
456
+ const rules = [];
457
+ if (context.includes(`required`) && context.includes(inputName))
458
+ rules.push('required');
459
+ if (context.includes(`minLength`) && context.includes(inputName))
460
+ rules.push('minLength');
461
+ if (context.includes(`maxLength`) && context.includes(inputName))
462
+ rules.push('maxLength');
463
+ if (context.includes(`pattern`) && context.includes(inputName))
464
+ rules.push('pattern');
465
+ if (context.includes(`email`) && context.includes(inputName))
466
+ rules.push('email format');
467
+ return rules;
468
+ }
469
+ function inferFilterType(matchText) {
470
+ if (matchText.toLowerCase().includes('search'))
471
+ return 'search';
472
+ if (matchText.toLowerCase().includes('sort'))
473
+ return 'sort';
474
+ return 'filter';
475
+ }
476
+ function extractFilterValues(filterName, context) {
477
+ // This would require more sophisticated parsing
478
+ // For now, return undefined to indicate dynamic values
479
+ return undefined;
480
+ }
481
+ function extractStateValues(content) {
482
+ const stateValues = [];
483
+ const patterns = [
484
+ /["'](pending|active|completed|cancelled|draft|published)["']/gi,
485
+ /["'](open|closed|in_progress)["']/gi,
486
+ ];
487
+ for (const pattern of patterns) {
488
+ let match;
489
+ while ((match = pattern.exec(content)) !== null) {
490
+ if (!stateValues.includes(match[1])) {
491
+ stateValues.push(match[1]);
492
+ }
493
+ }
494
+ }
495
+ return stateValues;
496
+ }
497
+ //# sourceMappingURL=analyze-mockups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-mockups.js","sourceRoot":"","sources":["../../src/tools/analyze-mockups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * codebakers_autonomous_build
3
+ *
4
+ * Full Autonomous Build Orchestrator
5
+ *
6
+ * Builds entire application from FLOWS.md with zero human intervention.
7
+ * Executes all features sequentially with full atomic unit protocol.
8
+ */
9
+ interface BuildArgs {
10
+ mode: 'full' | 'remaining';
11
+ stop_on_error?: boolean;
12
+ skip_quality_gates?: boolean;
13
+ skip_deploy?: boolean;
14
+ skip_docs?: boolean;
15
+ skip_chatbot?: boolean;
16
+ }
17
+ export declare function autonomousBuild(args: BuildArgs): Promise<string>;
18
+ export {};
19
+ //# sourceMappingURL=autonomous-build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autonomous-build.d.ts","sourceRoot":"","sources":["../../src/tools/autonomous-build.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA8FtE"}