1.5 KiB
SPEC-016 — Weather tool (get_weather)
Both personas talk about weather (the sea over the skerries, rain on
patch day) but had to guess it. get_weather grounds that in the
free MET Norway Locationforecast API (api.met.no, User-Agent
required, no key). Locations are host-configured coordinates — the
model picks by name, it never supplies raw URLs, so there is no SSRF
surface (one fixed API host).
WEA-01 — Tool offered only when configured (coverage: test)
The chat call's tools include get_weather only when
enable-weather is true AND weather-locations (a list of
[name, lat, lon] entries) is non-empty. Otherwise it is absent.
WEA-02 — Compact sanitized forecast (coverage: test)
The tool reduces the MET compact timeseries to: the named location,
current conditions (temperature °C, wind m/s, symbol), and a small
set of forecast points (next hours / tomorrow) with temperature,
symbol and precipitation. Location names pass
sanitize_external_text; numbers are numbers. Nothing else from the
API response reaches the prompt.
WEA-03 — Location matched by name, defaults to first (coverage: test)
The location argument matches configured entries
case-insensitively by substring; no or unknown location = the first
configured entry. Coordinates never come from the model.
WEA-04 — Errors return, never raise; calls are metered (coverage: test)
API/network failures return an {error} dict (the responder keeps
running). Each call counts against a per-user daily cap
(weather-daily-per-user, default 30) like the other tools.