AutoPage
Required plugin: JavaScript
Demo Video: https://www.bilibili.com/video/BV1Ye411h7Qu/
implementation: [cc.unitmesh.database.flow.AutoPageFlow]
Design Flow
Common flow for frontend development:
- getRoutes
 - getComponents
 - getDesignSystemComponents
 - sampleRemoteCall
 - sampleStateManagement
 
Prompt Override
Steps:
- step 1: 
prompts/genius/page/page-gen-clarify.vm - step 2: 
prompts/genius/page/page-gen-design.vm 
Context:
data class AutoPageContext(
    val requirement: String,
    var pages: List<String>,
    val pageNames: List<String>,
    var components: List<String>,
    val componentNames: List<String>,
    val routes: List<String>,
    val frameworks: List<String> = listOf("React"),
    val language: String = "JavaScript",
)
Current Prompt
Clarify:
    You are a professional Frontend developer.
    According to the user's requirements, you should choose the best components for the user in List.
    - Framework: ${context.frameworks}
    - Language: ${context.language}
    - User component: ${context.componentNames}, ${context.pageNames}
    
    For example:
    
    - Question(requirements): Build a form for user to fill in their information.
    - You should anwser: [Input, Select, Radio, Checkbox, Button, Form]
    
    ----
    
    Here are the User requirements:
    
    ```markdown
    ${context.requirement}
Please choose the best Components for the user, just return the components names in a list, no explain.
Design:
```markdown
    You are a professional Frontend developer.
    According to the user's requirements, and Components info, write Component for the user.
    
    - Framework: ${context.frameworks}
    - Language: ${context.language}
    - User Components Infos: ${context.components}
    
    For example:
    
    - Question(requirements): Build a form for user to fill in their information.
      // componentName: Form, props: { fields: [{name: 'name', type: 'text'}, {name: 'age', type: 'number'}] }
      // componentName: Input, props: { name: 'name', type: 'text' }
      // componentName: Input, props: { name: 'age', type: 'number' }
    - Answer:
    <Form>
        <Input name="name" type="text" />
        <Input name="age" type="number" />
    </Form>
    
    ----
    
    Here are the requirements:
    
    ${context.requirement}
    
    Please write your code with Markdown syntax, no explanation is needed:
Theory of AutoPage
Common frontend flow:
- Functional bootstrap
 - Request Transform / Data validation, IO Handing.
 - Process IPC/RPC Calling
 - Output Transform / Render