"""
Aggregation function for eval-basic.

Extracted from the original `aggregate.py` PromptFlow node.
- `@tool` decorator removed (not needed in MAF).
- `log_metric()` replaced with returning metrics as a dict.
"""

from typing import Dict, List


def aggregate(processed_results: List[str]) -> Dict[str, int]:
    """Aggregate per-row results into batch-level metrics.

    :param processed_results: List of "Correct"/"Incorrect" strings from all rows.
    :returns: Dict with metric name → value.
    """
    results_num = len(processed_results)
    correct_num = processed_results.count("Correct")
    return {
        "results_num": results_num,
        "correct_num": correct_num,
    }
