| """Lodestone β the Projector. | |
| Projects what's coming next: NWS active flood-relevant alerts (the | |
| National Weather Service's authoritative short-horizon watches / | |
| warnings), Granite TimeSeries TTM r2 zero-shot forecasts of the Battery | |
| surge residual and per-address NYC 311 complaint rates and per-sensor | |
| FloodNet event recurrence, and (via the Granite-TTM-r2-Battery-Surge | |
| fine-tune on AMD MI300X) a 96-hour surge nowcast. | |
| The Lodestone is the forward-looking Stone β every cited number here | |
| is a forecast, framed as such in the briefing. | |
| """ | |
| from __future__ import annotations | |
| from typing import Any | |
| NAME = "Lodestone" | |
| TAGLINE = "The Projector" | |
| DESCRIPTION = "Projects what's coming: alerts, surge, and recurrence forecasts." | |
| # Existing forecast specialists + the new fine-tuned Battery surge | |
| # nowcast (added in commit 6). | |
| SOURCES = [ | |
| "nws_alerts", # step_nws_alerts β NWS public alerts | |
| "ttm_forecast", # step_ttm_forecast β TTM r2 Battery zero-shot | |
| "ttm_311_forecast", # step_ttm_311_forecast β TTM r2 311 weekly | |
| "floodnet_forecast", # step_floodnet_forecast β TTM r2 FloodNet recurrence | |
| "ttm_battery_surge", # step_ttm_battery_surge (commit 6) β fine-tuned | |
| ] | |
| def collect(state: dict[str, Any]) -> dict[str, Any]: | |
| """Return {state_key: value} for every Lodestone source that fired.""" | |
| return {k: state[k] for k in SOURCES if state.get(k) is not None} | |