| 176 | } |
| 177 | |
| 178 | function buildAgentPrompt(app: AppInput, summary: AppSummary): string { |
| 179 | return [ |
| 180 | `Build a VibeApp named "${summary.englishName}" (original name: ${app.name}).`, |
| 181 | '', |
| 182 | `## Scenario`, |
| 183 | summary.scenario, |
| 184 | '', |
| 185 | `## Page Structure & Interactions`, |
| 186 | summary.pageStructure, |
| 187 | '', |
| 188 | `## Data Integration`, |
| 189 | `- Trigger keywords: ${(app.keywords || []).join(', ')}`, |
| 190 | `- Data format: json`, |
| 191 | '', |
| 192 | `## Important`, |
| 193 | `- Use responsive layout, do not hardcode container dimensions`, |
| 194 | `- Follow the VibeApp workflow and project conventions defined in CLAUDE.md`, |
| 195 | ].join('\n'); |
| 196 | } |
| 197 | |
| 198 | function getToolPreview(block: { name: string; input: Record<string, unknown> }): string { |
| 199 | const input = block.input; |