a2ui-project / a2ui-project/a2ui

Evals failed on main (PR #2549)

Ouverte
#2,570 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
eval_failure P2
Langage dominant
TypeScript
Étoiles
16.4k
Forks
1.3k
Merge moyen
2 j 13 h
PR mergées (30 j)
134

Description

The evals workflow failed on main for commit 0ae7af8fdee975d5b727e2e7cea267175062048c.
Associated PR: #2549
See logs: https://github.com/a2ui-project/a2ui/actions/runs/34295297614

### Detailed Summary
### Evaluation Summary: a2ui_v0_9_1_eval
- **Status**: FAIL
- **Model**: `google/gemini-3.5-flash`
- **Pass Percentage**: `89.09%` (Threshold: `90.00%`)

#### Dataset Performance Summary
| Dataset Name | Total Samples | Algorithmic Pass Rate | Judging Pass Rate | Dataset Pass Rate |
| :--- | :---: | :---: | :---: | :---: |
| `core_v0_9_1` | 51 | 88.2% | 86.3% | 76.5% |
| `multi_turn_conversation_dataset` | 4 | 100.0% | 100.0% | 100.0% |

#### Sample Results
| Sample / Task | Algorithmic | Judging | Inference Time | Status |
| :--- | :---: | :---: | :---: | :---: |
| animalKingdomExplorer | PASS | C | 9.72s | PASS |
| calendarEventCreator | PASS | C | 10.66s | PASS |
| chatRoom | PASS | C | 8.21s | PASS |
| checkoutPage | PASS | C | 7.13s | PASS |
| cinemaSeatSelection | PASS | P | 15.73s | FAIL |
| clientSideValidation | PASS | C | 8.34s | PASS |
| contactCard | PASS | C | 8.20s | PASS |
| contextAwareUI | FAIL | C | 7.47s | FAIL |
| courseSyllabus | PASS | C | 7.77s | PASS |
| customYamlKeysTest | PASS | C | 6.07s | PASS |
| dashboard | PASS | C | 6.27s | PASS |
| deleteSurface | PASS | C | 4.88s | PASS |
| dogBreedGenerator | PASS | C | 9.46s | PASS |
| eCommerceProductPage | PASS | C | 7.81s | PASS |
| fileBrowser | PASS | C | 9.27s | PASS |
| fitnessTracker | PASS | C | 9.18s | PASS |
| flashcardApp | PASS | I | 15.12s | FAIL |
| flightBooker | PASS | C | 6.42s | PASS |
| hotelSearchResults | PASS | C | 9.38s | PASS |
| interactiveDashboard | PASS | C | 12.40s | PASS |
| jobApplication | PASS | C | 7.16s | PASS |
| kanbanBoard | PASS | C | 6.07s | PASS |
| loginForm | PASS | C | 7.40s | PASS |
| mcpAppProxy | FAIL | I | 4.35s | FAIL |
| musicPlayer | FAIL | C | 7.28s | FAIL |
| nestedDataBinding | PASS | C | 8.34s | PASS |
| nestedLayoutRecursive | PASS | C | 10.01s | PASS |
| newsAggregator | PASS | C | 6.25s | PASS |
| notificationCenter | PASS | C | 7.48s | PASS |
| openUrlAction | PASS | C | 6.31s | PASS |
| photoEditor | PASS | C | 8.22s | PASS |
| podcastEpisode | PASS | P | 12.20s | FAIL |
| productGallery | PASS | C | 8.73s | PASS |
| productGalleryData | PASS | I | 14.51s | FAIL |
| profileEditor | PASS | C | 7.95s | PASS |
| recipeCard | PASS | C | 7.34s | PASS |
| restaurantFinder | PASS | I | 7.16s | FAIL |
| restaurantMenu | FAIL | C | 7.14s | FAIL |
| rizzCharts | PASS | C | 9.64s | PASS |
| settingsPage | PASS | C | 10.11s | PASS |
| simpleCalculator | FAIL | C | 9.83s | FAIL |
| smartHome | PASS | C | 10.66s | PASS |
| socialMediaPost | PASS | C | 6.94s | PASS |
| standardFunctions | PASS | C | 6.47s | PASS |
| stockWatchlist | PASS | P | 10.78s | FAIL |
| surveyForm | PASS | C | 7.98s | PASS |
| travelItinerary | PASS | C | 8.24s | PASS |
| triviaQuiz | PASS | C | 6.20s | PASS |
| updateDataModel | PASS | C | 7.03s | PASS |
| videoCallInterface | FAIL | C | 6.45s | FAIL |
| weatherForecast | PASS | C | 8.94s | PASS |
| banking_dispute_resolution | PASS | C | 5.48s | PASS |
| corporate_travel_multi_city_rebooking | PASS | C | 7.75s | PASS |
| flight_booking_flow | PASS | C | 6.65s | PASS |
| healthcare_patient_intake_triage | PASS | C | 7.61s | PASS |

#### Failure Details
##### cinemaSeatSelection
- **Judging Failure Reason (Grade P)**:
> To determine the grade of the submission, let us evaluate the criteria step-by-step:
>
> 1. **Surface ID**: The submission correctly creates and updates the surface with `"surfaceId": "main"`.
> 2. **Title Text**: The criterion asks for an `'h1' 'Text' 'Select Seats'`.
> - The submission uses a component with text `"# Select Seats"` (the markdown `#` character represents an H1 header) but sets its `"variant"` to `"h2"`. This is a minor variation.
> 3. **Centered "Screen" Text**: The criterion asks for a centered `'Text' 'Screen'`.
> - The submission contains a row with `"justify": "center"` containing a text component with the value `"--- SCREEN ---"`. This is a minor cosmetic variation of the requested text.
> 4. **Column of Rows with CheckBoxes**: The criterion requires a `'Column'` of three `'Row's, each containing 4 `'CheckBox'es`.
> - The submission defines a Column (`seating_chart`) containing three Row components (`row_a_container`, `row_b_container`, `row_c_container`).
> - Each row contains 4 CheckBox components representing the seats.
> - Each row also contains an additional label text (e.g., `"Row A:"`), which is an extra user-friendly component that does not disrupt the core requirement.
> 5. **Confirm Selection Button**: The submission correctly contains a Button component labeled `"Confirm Selection"`.
>
> The submission meets almost all the functional requirements but contains minor cosmetic differences (such as using `"variant": "h2"` instead of `"h1"`, adding decorative dashes to the screen text, and adding label components to the rows). Therefore, it qualifies for partial credit.
>
> GRADE: P

##### contextAwareUI
- **Algorithmic Failure Reason**:
> Validation failed: {'version': '0.9', 'createSurface': {'surfaceId': 'main', 'catalogId': 'https://a2ui.org/specification/v0_9/catalogs/basic/catalog.json', 'theme': {'primaryColor': '#1E3A8A', 'agentDisplayName': 'Sales Analytics Hub'}}} is not valid under any of the given schemas
> Context failures:
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateComponents' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateDataModel' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'deleteSurface' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)

##### flashcardApp
- **Judging Failure Reason (Grade I)**:
> Based on the criterion provided, let's assess the submission step by step:
>
> 1. **Surface ID**: The JSON payload correctly targets the surface ID `'main'` in both the `createSurface` and `updateComponents` steps.
> 2. **Title**: The payload contains a `Text` component with the text `"# Spanish Vocabulary"` and `h1` variant, which is correct.
> 3. **Card and Column Structure**:
> - The payload contains a `Card` (`card_container`) which has a `Column` (`card_content_column`) as its child.
> - Inside this `Column`, we have the front text (`"## Hola"`), the `Divider`, and the back text (`"Hello"`).
> - However, the criterion explicitly states that the `Card` should have a `Column` that **includes** the front text, divider, back text, **and** a `Row` of buttons (`"Hard"`, `"Good"`, `"Easy"`).
> - In the submission, the `Row` of buttons (`buttons_row`) is placed outside of the `Card` entirely (as a sibling of the card inside the root `Column`), rather than being included inside the Card's `Column`.
>
> Because the row of buttons is structurally placed outside the card instead of inside it as requested, this is a substantive layout/hierarchy error.
>
> GRADE: I

##### mcpAppProxy
- **Algorithmic Failure Reason**:
> A2UI tags '' and '' not found in response.
- **Judging Failure Reason (Grade I)**:
> Step-by-step reasoning:
>
> 1. **Analyze the Criterion**: The criterion requires the submission to use the `McpApp` component to render the external app content (specifically, the neon table tennis arcade game requested in the task).
> 2. **Examine the Submission**: The submitted text states, "It looks like I'm having trouble launching the interactive interface directly right now." Instead of rendering an interactive interface using any components (such as `McpApp`), it only provides a textual description of what a neon table tennis game would look like and offers to provide HTML/CSS/JS code if requested.
> 3. **Compare Submission against Criterion**: The submission completely fails to use the `McpApp` component or render any interactive game interface.
> 4. **Determine the Grade**: Since the required component and functionality are entirely missing, the submission does not meet the criterion.
>
> GRADE: I

##### musicPlayer
- **Algorithmic Failure Reason**:
> Validation failed: {'version': '0.9', 'createSurface': {'surfaceId': 'main', 'catalogId': 'https://a2ui.org/specification/v0_9/catalogs/basic/catalog.json'}} is not valid under any of the given schemas
> Context failures:
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateComponents' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateDataModel' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'deleteSurface' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)

##### podcastEpisode
- **Judging Failure Reason (Grade P)**:
> To assess the submission against the given criterion, we can break down the evaluation into the following steps:
>
> 1. **Surface ID check**: The submission correctly creates and updates a surface with `surfaceId` set to `"main"`.
> 2. **Card Container**: The root component is a `'Card'` which contains a `'Column'` housing all the required elements.
> 3. **Image (Cover Art)**: An `'Image'` component is present with a valid image URL and description.
> 4. **Title Text**: The `'Text'` component for the episode title contains the exact text `"Episode 42: The Future of AI"`. However, its variant is set to `"h3"`, whereas the criterion specifies an `"h2"` text component. This is a minor cosmetic mismatch.
> 5. **Host Text**: The `'Text'` component with the host's name contains the exact text `"Host: Jane Smith"`.
> 6. **Slider**: A `'Slider'` component labeled `"Progress"` is initialized to `value: 0`.
> 7. **Controls Row**: A `'Row'` component contains three `'Button'`s with static `'Text'` children:
> - A button containing the text `"1x"`.
> - A button containing the text `"Play/Pause"`.
> - A button containing the text `"Share"`.
> 8. **Static Implementation**: All components are fully static and not data-bound.
>
> The submission is almost completely correct, with the only deviation being the text variant of the title (`"h3"` instead of `"h2"`). Since this is a minor cosmetic variation, the submission qualifies for partial credit.
>
> GRADE: P

##### productGalleryData
- **Judging Failure Reason (Grade I)**:
> To determine if the submission meets the criterion, we will break down the evaluation step by step:
>
> 1. **Surface Initialization**:
> * The submission correctly initializes the surface with `"surfaceId": "main"` inside the `createSurface` action.
>
> 2. **Data Model Update Path**:
> * The submission targets the correct path: `"path": "/products"`.
>
> 3. **Number of Products**:
> * The submission includes two products, which satisfies the requirement of "at least two products".
>
> 4. **Product Fields**:
> * Each product object contains the required fields: `id`, `name`, and `imageUrl`.
>
> 5. **Data Structure (Map vs. Array)**:
> * The criterion and task description explicitly state that the update should contain a **map** of product objects, providing a clear example of a JSON object (map) structure:
> ```json
> {
> "product1": {
> "id": "product1",
> "name": "Awesome Gadget",
> "imageUrl": "https://example.com/gadget.jpg"
> }
> }
> ```
> * The submission, however, provides an **array** of objects:
> ```json
> "value": [
> { "id": "prod-1", ... },
> { "id": "prod-2", ... }
> ]
> ```
> * Using an array instead of the requested map (object) structure is a substantive data type and structural error, as it alters how the data model is queried and resolved within the A2UI framework.
>
> Because the submission fails to use the required map structure for the product gallery data model, it contains a substantive error.
>
> GRADE: I

##### restaurantFinder
- **Judging Failure Reason (Grade I)**:
> To assess the submission against the given criterion, let us break down the requirements and compare them with the provided data:
>
> 1. **Criterion Requirement 1:** "The restaurant data must be populated in the data model under the path '/items'."
> - **Analysis of Submission:** There is no data model defined in the submission, and the restaurant data is not populated under `/items`. Instead, the restaurant details are hardcoded directly into the component properties (e.g., `"text": "Joe's Shanghai"`).
>
> 2. **Criterion Requirement 2:** "If the number of restaurants is more than 5, the TWO_COLUMN_LIST_EXAMPLE template must be used."
> - **Analysis of Submission:** The user requested 8 Chinese food spots (which is more than 5). The submission does not use any template, let alone the required `TWO_COLUMN_LIST_EXAMPLE` template. Instead, it manually builds out 8 card components inside a single column list.
>
> Since the submission fails to populate the restaurant data under `/items` and does not use the required `TWO_COLUMN_LIST_EXAMPLE` template, it does not meet the specified criteria.
>
> GRADE: I

##### restaurantMenu
- **Algorithmic Failure Reason**:
> Validation failed: {'version': '0.9', 'createSurface': {'surfaceId': 'main', 'catalogId': 'https://a2ui.org/specification/v0_9/catalogs/basic/catalog.json'}} is not valid under any of the given schemas
> Context failures:
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateComponents' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateDataModel' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'deleteSurface' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)

##### simpleCalculator
- **Algorithmic Failure Reason**:
> Validation failed: {'version': '0.9', 'createSurface': {'surfaceId': 'main', 'catalogId': 'https://a2ui.org/specification/v0_9/catalogs/basic/catalog.json'}} is not valid under any of the given schemas
> Context failures:
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateComponents' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateDataModel' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'deleteSurface' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)

##### stockWatchlist
- **Judging Failure Reason (Grade P)**:
> To assess whether the submission meets the criterion, we can break down the evaluation step by step:
>
> 1. **Surface ID Check**: The criterion requires the A2UI payload to have a `surfaceId` of `'main'`. Looking at the submission, both the `createSurface` and `updateComponents` actions correctly target `"surfaceId": "main"`.
> 2. **Header Text Component**:
> - The criterion asks for a `'Market Watch'` `'h1'` `'Text'` component.
> - In the submission, the component `title_text` is indeed a `'Text'` component with the text `"# Market Watch"`.
> - However, its variant is set to `"h2"` instead of `"h1"`. This is a minor discrepancy.
> 3. **List of Rows Check**: The criterion requires a `'List'` of `'Row'`s. The submission contains a `List` component (`watchlist_list`) containing three `Row` components (`row_1`, `row_2`, and `row_3`).
> 4. **Stock Information inside Rows**: Each row correctly contains the three required `'Text'` components displaying:
> - Row 1: "AAPL", "$150.00", and "+1.2%".
> - Row 2: "GOOGL", "$2800.00", and "-0.5%".
> - Row 3: "AMZN", "$3400.00", and "+0.8%".
>
> **Conclusion**:
> The submission is structurally correct and fulfills almost all of the criteria. The only deviation is using an `"h2"` variant instead of `"h1"` for the header text (which was not explicitly specified in the initial task description but is in the assessment criterion). According to Note 7, this represents a minor cosmetic variation, which qualifies the submission for partial credit.
>
> GRADE: P

##### videoCallInterface
- **Algorithmic Failure Reason**:
> Validation failed: {'version': '0.9', 'createSurface': {'surfaceId': 'main', 'catalogId': 'https://a2ui.org/specification/v0_9/catalogs/basic/catalog.json'}} is not valid under any of the given schemas
> Context failures:
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateComponents' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'updateDataModel' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)
> - '0.9' is not one of ['v0.9', 'v0.9.1']
> - 'deleteSurface' is a required property
> - Additional properties are not allowed ('createSurface' was unexpected)

---

### Evaluation Summary: a2ui_v1_0_eval
- **Status**: PASS
- **Model**: `google/gemini-3.5-flash`
- **Pass Percentage**: `96.36%` (Threshold: `90.00%`)

#### Dataset Performance Summary
| Dataset Name | Total Samples | Algorithmic Pass Rate | Judging Pass Rate | Dataset Pass Rate |
| :--- | :---: | :---: | :---: | :---: |
| `core_v1_0` | 51 | 96.1% | 86.3% | 86.3% |
| `multi_turn_conversation_dataset` | 4 | 100.0% | 100.0% | 100.0% |

#### Sample Results
| Sample / Task | Algorithmic | Judging | Inference Time | Status |
| :--- | :---: | :---: | :---: | :---: |
| animalKingdomExplorer | PASS | C | 12.11s | PASS |
| calendarEventCreator | PASS | C | 6.43s | PASS |
| chatRoom | PASS | C | 8.45s | PASS |
| checkoutPage | PASS | C | 7.34s | PASS |
| cinemaSeatSelection | PASS | C | 7.49s | PASS |
| clientSideValidation | PASS | C | 4.80s | PASS |
| contactCard | PASS | C | 25.88s | PASS |
| contextAwareUI | PASS | C | 9.14s | PASS |
| courseSyllabus | PASS | C | 7.34s | PASS |
| customYamlKeysTest | PASS | I | 12.76s | FAIL |
| dashboard | PASS | C | 7.80s | PASS |
| deleteSurface | PASS | C | 4.09s | PASS |
| dogBreedGenerator | PASS | C | 9.34s | PASS |
| eCommerceProductPage | FAIL | I | 12.07s | FAIL |
| fileBrowser | PASS | C | 6.69s | PASS |
| fitnessTracker | PASS | C | 8.43s | PASS |
| flashcardApp | PASS | I | 17.08s | FAIL |
| flightBooker | PASS | C | 6.66s | PASS |
| hotelSearchResults | PASS | C | 8.58s | PASS |
| interactiveDashboard | PASS | C | 8.19s | PASS |
| jobApplication | PASS | C | 6.25s | PASS |
| kanbanBoard | PASS | C | 6.42s | PASS |
| loginForm | PASS | C | 7.05s | PASS |
| mcpAppProxy | PASS | I | 4.21s | FAIL |
| musicPlayer | PASS | C | 7.15s | PASS |
| nestedDataBinding | PASS | C | 11.33s | PASS |
| nestedLayoutRecursive | PASS | C | 7.20s | PASS |
| newsAggregator | PASS | C | 6.42s | PASS |
| notificationCenter | PASS | C | 6.70s | PASS |
| openUrlAction | PASS | C | 5.68s | PASS |
| photoEditor | PASS | C | 6.16s | PASS |
| podcastEpisode | PASS | C | 7.06s | PASS |
| productGallery | PASS | C | 10.38s | PASS |
| productGalleryData | PASS | C | 5.01s | PASS |
| profileEditor | PASS | C | 8.03s | PASS |
| recipeCard | PASS | C | 8.69s | PASS |
| restaurantFinder | PASS | I | 9.82s | FAIL |
| restaurantMenu | PASS | C | 7.61s | PASS |
| rizzCharts | FAIL | I | 5.37s | FAIL |
| settingsPage | PASS | C | 9.43s | PASS |
| simpleCalculator | PASS | C | 7.81s | PASS |
| smartHome | PASS | C | 9.71s | PASS |
| socialMediaPost | PASS | C | 8.53s | PASS |
| standardFunctions | PASS | C | 11.90s | PASS |
| stockWatchlist | PASS | C | 6.90s | PASS |
| surveyForm | PASS | C | 7.19s | PASS |
| travelItinerary | PASS | C | 14.25s | PASS |
| triviaQuiz | PASS | C | 7.08s | PASS |
| updateDataModel | PASS | C | 7.00s | PASS |
| videoCallInterface | PASS | C | 5.44s | PASS |
| weatherForecast | PASS | P | 12.90s | FAIL |
| banking_dispute_resolution | PASS | C | 7.37s | PASS |
| corporate_travel_multi_city_rebooking | PASS | C | 7.32s | PASS |
| flight_booking_flow | PASS | C | 8.63s | PASS |
| healthcare_patient_intake_triage | PASS | C | 8.22s | PASS |

#### Failure Details
##### customYamlKeysTest
- **Judging Failure Reason (Grade I)**:
> To assess the submission against the criterion, let's analyze the requirements of the task and compare them to the provided payload:
>
> 1. **Analyze the Task**: The task asks to "Generate a JSON message testing custom catalog, role_description and workflow_description." This indicates that the resulting JSON payload should test these three specific concepts, ideally as keys or clearly defined fields (e.g., `"catalog"`, `"role_description"`, and `"workflow_description"`).
>
> 2. **Examine the Submission**:
> - **Custom Catalog**: The submission uses `"catalogId": "https://a2ui.org/specification/v1_0/catalogs/basic/catalog.json"`. This points to a "basic" catalog rather than a custom one.
> - **role_description**: The payload does not contain a `"role_description"` key. It has a component with an ID `"roleDesc"` containing a text string, but not the requested field.
> - **workflow_description**: The payload does not contain a `"workflow_description"` key or any component representing a workflow description (it only has a workflow status, step, and a text field for "Next Workflow Step Target").
>
> 3. **Conclusion**: The submission attempts to simulate a complex "Role Profile & Workflow Dashboard" using a hypothetical A2UI JSON schema, but it fails to include the actual requested fields (`custom catalog`, `role_description`, and `workflow_description`) for testing. A correct response would be a JSON object containing these specific parameters to test their integration.
>
> GRADE: I

##### eCommerceProductPage
- **Algorithmic Failure Reason**:
> Validation failed: {'version': 'v1.0', 'updateComponents': {'surfaceId': 'main', 'components': [{'id': 'root', 'component': 'Row', 'justify': 'spaceBetween', 'align': 'start'}, {'id': 'left_col', 'component': 'Column', 'weight': 1, 'align': 'stretch'}, {'id': 'right_col', 'component': 'Column', 'weight': 1, 'align': 'stretch'}, {'id': 'main_img', 'component': 'Image', 'url': 'https://images.unsplash.com/photo-1551028719-00167b16eac5?auto=format&fit=crop&w=800&q=80', 'description': 'Premium Leather Jacket front view', 'variant': 'largeFeature'}, {'id': 'thumb_row', 'component': 'Row', 'justify': 'spaceBetween', 'align': 'center'}, {'id': 'thumb_1', 'component': 'Image', 'url': 'https://images.unsplash.com/photo-1551028719-00167b16eac5?auto=format&fit=crop&w=150&q=80', 'description': 'Thumbnail front view', 'variant': 'smallFeature'}, {'id': 'thumb_2', 'component': 'Image', 'url': 'https://images.unsplash.com/photo-1521223869279-371899a67f0d?auto=format&fit=crop&w=150&q=80', 'description': 'Thumbnail back view', 'variant': 'smallFeature'}, {'id': 'thumb_3', 'component': 'Image', 'url': 'https://images.unsplash.com/photo-1517841905240-472988babdf9?auto=format&fit=crop&w=150&q=80', 'description': 'Thumbnail detail view', 'variant': 'smallFeature'}, {'id': 'prod_name', 'component': 'Text', 'text': '# Premium Leather Jacket'}, {'id': 'prod_price', 'component': 'Text', 'text': '$299.99'}, {'id': 'divider_1', 'component': 'Divider'}, {'id': 'size_picker', 'component': 'ChoicePicker', 'label': 'Select Size', 'variant': 'mutuallyExclusive', 'displayStyle': 'chips', 'options': [{'label': 'S', 'value': 'S'}, {'label': 'M', 'value': 'M'}, {'label': 'L', 'value': 'L'}, {'label': 'XL', 'value': 'XL'}], 'value': {'path': '/selected/size'}}, {'id': 'color_picker', 'component': 'ChoicePicker', 'label': 'Select Color', 'variant': 'mutuallyExclusive', 'displayStyle': 'chips', 'options': [{'label': 'Black', 'value': 'Black'}, {'label': 'Brown', 'value': 'Brown'}, {'label': 'Red', 'value': 'Red'}], 'value': {'path': '/selected/color'}}, {'id': 'add_to_cart_btn', 'component': 'Button', 'child': 'btn_text', 'variant': 'primary', 'action': {'event': {'name': 'add_to_cart', 'userMessage': 'Added jacket to cart', 'context': {'size': {'path': '/selected/size'}, 'color': {'path': '/selected/color'}}}}}, {'id': 'btn_text', 'component': 'Text', 'text': 'Add to Cart'}, {'id': 'prod_desc', 'component': 'Text', 'text': 'Crafted from durable, premium-grade leather, this jacket features sleek asymmetrical zippers, a comfortable inner lining, and classic biker styling. Perfect for any season.'}]}} is not valid under any of the given schemas
> Context failures:
> - 'createSurface' is a required property
> - Additional properties are not allowed ('updateComponents' was unexpected)
> - {'id': 'root', 'component': 'Row', 'justify': 'spaceBetween', 'align': 'start'} is not valid under any of the given schemas
> - Unevaluated properties are not allowed ('align', 'justify' were unexpected)
> - {'id': 'left_col', 'component': 'Column', 'weight': 1, 'align': 'stretch'} is not valid under any of the given schemas
> - Unevaluated properties are not allowed ('align', 'weight' were unexpected)
> - {'id': 'right_col', 'component': 'Column', 'weight': 1, 'align': 'stretch'} is not valid under any of the given schemas
> - Unevaluated properties are not allowed ('align', 'weight' were unexpected)
> - {'id': 'thumb_row', 'component': 'Row', 'justify': 'spaceBetween', 'align': 'center'} is not valid under any of the given schemas
> - Unevaluated properties are not allowed ('align', 'justify' were unexpected)
> - 'updateDataModel' is a required property
> - Additional properties are not allowed ('updateComponents' was unexpected)
> - 'deleteSurface' is a required property
> - Additional properties are not allowed ('updateComponents' was unexpected)
> - 'callRendererFunction' is a required property
> - Additional properties are not allowed ('updateComponents' was unexpected)
> - 'agentFunctionResponse' is a required property
> - Additional properties are not allowed ('updateComponents' was unexpected)
- **Judging Failure Reason (Grade I)**:
> To assess the submission, we will evaluate the structure of the A2UI JSON payload against the requested criteria:
>
> 1. **Surface ID**: The payload correctly uses `surfaceId: "main"`.
> 2. **Components**:
> - The required components (Row, Columns, Images, Texts, Divider, ChoicePickers, Button) are all defined in the JSON list with correct properties, text, labels, and choices.
> 3. **Layout and Hierarchy**:
> - In A2UI, container components like `Row` and `Column` must define a `children` property containing an array of child component IDs to establish the layout tree.
> - Examining the submission, `root` (Row), `left_col` (Column), `right_col` (Column), and `thumb_row` (Row) completely lack the `children` property.
> - Without these parent-child relationships, the layout remains completely flat and cannot render the intended structure (e.g., splitting the screen into left and right columns, nesting the thumbnails inside the left column, etc.).
>
> Since the structural layout hierarchy is entirely missing, this is a substantive error that prevents the UI from rendering correctly.
>
> GRADE: I

##### flashcardApp
- **Judging Failure Reason (Grade I)**:
> An analysis of the submission against the specified criterion:
>
> 1. **Presence of the Heading**: The payload contains a `Text` component with the text `"# Spanish Vocabulary"`, which satisfies the requirement.
> 2. **Presence of the Card and Card Column**: There is a `Card` component (`flashcard`) containing a `Column` (`cardColumn`).
> 3. **Nesting of Elements inside the Card Column**:
> - The front text (`"## Hola"`) is correctly nested inside `cardColumn`.
> - The `Divider` (`cardDivider`) is correctly nested inside `cardColumn`.
> - The back text (`"Hello"`) is correctly nested inside `cardColumn`.
> 4. **Placement of the Row of Buttons**: The task specifies: *"Inside the card, a 'Column' with... 'Row' of buttons: 'Hard', 'Good', 'Easy'"*, and the criterion requires *"a 'Card' with a 'Column' including the front text ('Hola'), a 'Divider', the back text ('Hello'), and a 'Row' of 'Button's ('Hard', 'Good', 'Easy')"*.
> - In the submission, the `buttonRow` is placed outside the `flashcard` as a sibling in the root container (`root`), rather than inside the `cardColumn` of the `Card`.
>
> Because the structural hierarchy is incorrect (the button row is outside the card instead of inside), the submission contains a substantive error and does not fully meet the criterion.
>
> GRADE: I

##### mcpAppProxy
- **Judging Failure Reason (Grade I)**:
> Based on the provided criterion, the submission must use the `McpApp` component to render the external app content.
>
> In the provided JSON schema inside the `` block, the components defined are:
> 1. `PongLayout` (id: `root`)
> 2. `PongScoreBoard` (id: `pong_scoreboard`)
> 3. `WebAppFrameSrcdoc` (id: `pong_game`)
>
> The submission uses `WebAppFrameSrcdoc` instead of the required `McpApp` component to render the interactive game/app. Therefore, it does not meet the specified criterion.
>
> GRADE: I

##### restaurantFinder
- **Judging Failure Reason (Grade I)**:
> To assess the submission against the given criteria, let's break down the requirements step by step:
>
> 1. **Data Model Path Requirement**:
> - The criterion states: *"The restaurant data must be populated in the data model under the path '/items'."*
> - In the submission's JSON, the data is under `"dataModel": { "items": [ ... ] }`. This correctly populates the items under the `/items` path.
>
> 2. **Template Selection based on Item Count**:
> - The criterion states:
> - *"If the number of restaurants is 5 or fewer, the SINGLE_COLUMN_LIST_EXAMPLE template must be used."*
> - *"If the number of restaurants is more than 5, the TWO_COLUMN_LIST_EXAMPLE template must be used."*
> - The user provided **8** restaurants in the data model.
> - Since 8 is more than 5, the submission was required to use the **`TWO_COLUMN_LIST_EXAMPLE`** template.
> - Examining the UI components in the submission, the component `"restaurantList"` is defined as a `List` component with `"direction": "vertical"`, which renders a single-column vertical list of cards. It does not implement a two-column template layout.
>
> Since the submission failed to use the required `TWO_COLUMN_LIST_EXAMPLE` template for a list of more than 5 items, it does not meet the criteria.
>
> GRADE: I

##### rizzCharts
- **Algorithmic Failure Reason**:
> A2UI tags '' and '' not found in response.
- **Judging Failure Reason (Grade I)**:
> To assess the submission, we must evaluate it against the provided criterion.
>
> 1. **Analyze the Task and Criterion**:
> * **Task**: The user is asking to visualize storefront sales across the Pacific Northwest territory to pinpoint underperforming brick-and-mortar units.
> * **Criterion**: The core objective is to construct UI surfaces with appropriate visualization components (such as a Map component for regional/store location data, a Column layout as the root, and a Text component for the title) using specific JSON templates.
>
> 2. **Analyze the Submission**:
> * The submission provides a single tool call payload:
> ```json
> {
> "name": "get_store_sales",
> "arguments": {
> "region": "Pacific Northwest"
> }
> }
> ```
> * This is a backend database/API function call rather than the requested UI dashboard construction.
> * It completely omits the required UI components (such as `Column`, `Text`, and the `Map` or `Chart` template components specified in the criterion).
>
> 3. **Conclusion**:
> * The submission fails to build or return the UI payload requested by the core objective in the criterion. Therefore, it is incorrect.
>
> GRADE: I

##### weatherForecast
- **Judging Failure Reason (Grade P)**:
> To assess the submission against the criterion, let's check each requirement step-by-step:
>
> 1. **Surface ID**: The submission correctly creates the surface and updates components on `surfaceId: "main"`.
> 2. **City Name**: It includes a `Text` component (`id: "cityName"`) with the text `"# New York"`.
> 3. **Current Weather Row**: Below the city name, there is a `Row` containing a `Text` component with `"68°F"` and an `Image` component (`id: "currentIcon"`).
> 4. **Divider**: It includes a `Divider` component (`id: "divider1"`) below the current weather row.
> 5. **List**: It defines a `List` component (`id: "forecastList"`) bound to a data model containing 5 forecast items.
> 6. **List Row Items**: Each item in the list is a `Row` containing:
> - A `Text` component for the day (`forecastDay`).
> - An `Icon` component for the icon (`forecastIcon`), whereas the criterion specifically requested an **`Image`** component for the icon.
> - A `Text` component for the high/low temperatures (`forecastTemp`).
>
> Since the submission uses an `Icon` component instead of an `Image` component for the list item icons, it deviates slightly from the specific component type required by the criterion, while fulfilling all other structural, data, and component requirements perfectly. This minor variation qualifies for partial credit.
>
> GRADE: P

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

The issue is about evaluation failures in an AI-driven UI project. Start by examining the failing evals workflow logs linked in the issue. Look at the specific test failures like 'contextAwareUI' and 'musicPlayer' which show schema validation errors (e.g., version '0.9' not being valid). The fix likely involves updating the test expectations or the model's output generation to comply with the correct A2UI schema version (v0.9 or v0.9.1). Check the test files for these eval tasks to understand the expected JSON structure. 'Done' means the evals pass the 90% threshold.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, typescript
Domaine
ai-infra-agents, testing-qa
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.