Spaces:
Running
Running
| from dataclasses import dataclass, field | |
| from typing import List, Dict, Any, Optional | |
| from domain.training.run import Run | |
| from domain.training.weekly_snapshot import WeeklySnapshot | |
| from domain.training.weekly_trend import WeeklyTrend | |
| from domain.runner.profile import RunnerProfile | |
| from domain.training.training_recommendation import TrainingRecommendation | |
| from domain.goals.goal_trajectory import GoalTrajectory | |
| from core.intelligence.runner_intelligence_snapshot import RunnerIntelligenceSnapshot | |
| from application.positioning_service import WeeklyPositioning | |
| class PipelineContext: | |
| """ | |
| Explicit, typed data contract for the Runner pipeline. | |
| Eliminates dynamic field attachments and implicit state. | |
| """ | |
| # Inputs | |
| runs: List[Any] = field(default_factory=list) | |
| language: str = "en" | |
| runner_profile: Optional[RunnerProfile] = None | |
| active_goal: Optional[Any] = None | |
| # Session state | |
| sessions: Dict[Any, WeeklySnapshot] = field(default_factory=dict) | |
| # Computed training data | |
| weekly_snapshot: Optional[WeeklySnapshot] = None | |
| weekly_trend: Optional[WeeklyTrend] = None | |
| # Positioning layer | |
| positioning: Optional[WeeklyPositioning] = None | |
| recommendation: Optional[TrainingRecommendation] = None | |
| goal_trajectory: Optional[GoalTrajectory] = None | |
| # Intelligence outputs | |
| insights: Dict[str, Any] = field(default_factory=dict) | |
| plan: Optional[str] = None | |
| summary: Optional[Dict[str, Any]] = None | |
| trends: Optional[Any] = None | |
| risk_assessment: Optional[Any] = None | |
| intelligence_snapshot: Optional[RunnerIntelligenceSnapshot] = None | |
| # Intelligence Cache (for reuse) | |
| last_positioning: Optional[Any] = None | |
| last_insights: Dict[str, Any] = field(default_factory=dict) | |
| last_plan: Optional[str] = None | |
| last_brief: Optional[str] = None | |
| last_focus: Optional[str] = None | |
| # Visualization | |
| charts: Dict[str, Any] = field(default_factory=dict) | |
| # Comparison | |
| period_comparison: Optional[Any] = None | |