from __future__ import annotations import logging from datetime import datetime from schemas.report import ReportInput, ReportType from schemas.signal import NormalizedSignal, SignalType logger = logging.getLogger(__name__) class IntakeAgent: async def run(self, report: ReportInput) -> NormalizedSignal: logger.debug("IntakeAgent processing report %s (type=%s)", report.id, report.report_type) content = report.content or "" modality = report.report_type.value if report.report_type == ReportType.LOCATION: signal_type = SignalType.FLOOD description = f"Location data received: {content[:200]}" confidence = 0.70 elif report.report_type == ReportType.CSV: signal_type = SignalType.FLOOD description = f"CSV batch data: {content[:200]}" confidence = 0.70 else: signal_type = SignalType.UNKNOWN description = content[:200] if content else f"Report from {modality}" confidence = 0.60 return NormalizedSignal( source_report_id=report.id, signal_type=signal_type, description=description, raw_text=content, confidence=confidence, modality=modality, created_at=datetime.utcnow(), )