File size: 615 Bytes
cb505ff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from __future__ import annotations

from dataclasses import dataclass, field
from typing import Any, Dict


@dataclass(frozen=True)
class TrendAnalysis:
    """Deterministic CDM output passed to the coaching skill."""

    summary: str
    metrics: Dict[str, Any] = field(default_factory=dict)

    def as_dict(self) -> Dict[str, Any]:
        return {"trend_analysis": self.summary, "trend_data": self.metrics}


def trend_analysis_from_state(state: Dict[str, Any]) -> TrendAnalysis:
    return TrendAnalysis(
        summary=state.get("trend_analysis") or "",
        metrics=state.get("trend_data") or {},
    )