@dangahagan/weather-mcp 1.8.2 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -13
- package/dist/config/cache.d.ts +1 -0
- package/dist/config/cache.d.ts.map +1 -1
- package/dist/config/cache.js +3 -0
- package/dist/config/cache.js.map +1 -1
- package/dist/config/tools.d.ts +1 -1
- package/dist/config/tools.d.ts.map +1 -1
- package/dist/config/tools.js +24 -10
- package/dist/config/tools.js.map +1 -1
- package/dist/config/units.d.ts +69 -0
- package/dist/config/units.d.ts.map +1 -0
- package/dist/config/units.js +121 -0
- package/dist/config/units.js.map +1 -0
- package/dist/handlers/airQualityHandler.d.ts +3 -1
- package/dist/handlers/airQualityHandler.d.ts.map +1 -1
- package/dist/handlers/airQualityHandler.js +8 -6
- package/dist/handlers/airQualityHandler.js.map +1 -1
- package/dist/handlers/alertsHandler.d.ts +3 -1
- package/dist/handlers/alertsHandler.d.ts.map +1 -1
- package/dist/handlers/alertsHandler.js +20 -8
- package/dist/handlers/alertsHandler.js.map +1 -1
- package/dist/handlers/currentConditionsHandler.d.ts +3 -1
- package/dist/handlers/currentConditionsHandler.d.ts.map +1 -1
- package/dist/handlers/currentConditionsHandler.js +40 -41
- package/dist/handlers/currentConditionsHandler.js.map +1 -1
- package/dist/handlers/forecastHandler.d.ts +2 -1
- package/dist/handlers/forecastHandler.d.ts.map +1 -1
- package/dist/handlers/forecastHandler.js +98 -56
- package/dist/handlers/forecastHandler.js.map +1 -1
- package/dist/handlers/historicalWeatherHandler.d.ts +3 -1
- package/dist/handlers/historicalWeatherHandler.d.ts.map +1 -1
- package/dist/handlers/historicalWeatherHandler.js +50 -41
- package/dist/handlers/historicalWeatherHandler.js.map +1 -1
- package/dist/handlers/lightningHandler.d.ts +12 -0
- package/dist/handlers/lightningHandler.d.ts.map +1 -1
- package/dist/handlers/lightningHandler.js +60 -1
- package/dist/handlers/lightningHandler.js.map +1 -1
- package/dist/handlers/locationHandler.d.ts.map +1 -1
- package/dist/handlers/locationHandler.js +4 -2
- package/dist/handlers/locationHandler.js.map +1 -1
- package/dist/handlers/marineConditionsHandler.d.ts +3 -1
- package/dist/handlers/marineConditionsHandler.d.ts.map +1 -1
- package/dist/handlers/marineConditionsHandler.js +12 -9
- package/dist/handlers/marineConditionsHandler.js.map +1 -1
- package/dist/handlers/riverConditionsHandler.d.ts +3 -1
- package/dist/handlers/riverConditionsHandler.d.ts.map +1 -1
- package/dist/handlers/riverConditionsHandler.js +7 -6
- package/dist/handlers/riverConditionsHandler.js.map +1 -1
- package/dist/handlers/weatherImageryHandler.d.ts +18 -1
- package/dist/handlers/weatherImageryHandler.d.ts.map +1 -1
- package/dist/handlers/weatherImageryHandler.js +45 -4
- package/dist/handlers/weatherImageryHandler.js.map +1 -1
- package/dist/handlers/weatherSummaryHandler.d.ts +25 -0
- package/dist/handlers/weatherSummaryHandler.d.ts.map +1 -0
- package/dist/handlers/weatherSummaryHandler.js +125 -0
- package/dist/handlers/weatherSummaryHandler.js.map +1 -0
- package/dist/handlers/wildfireHandler.d.ts +3 -1
- package/dist/handlers/wildfireHandler.d.ts.map +1 -1
- package/dist/handlers/wildfireHandler.js +7 -6
- package/dist/handlers/wildfireHandler.js.map +1 -1
- package/dist/index.js +165 -183
- package/dist/index.js.map +1 -1
- package/dist/services/blitzortung.d.ts +8 -0
- package/dist/services/blitzortung.d.ts.map +1 -1
- package/dist/services/blitzortung.js +31 -0
- package/dist/services/blitzortung.js.map +1 -1
- package/dist/services/noaa.d.ts +4 -4
- package/dist/services/noaa.d.ts.map +1 -1
- package/dist/services/noaa.js +12 -14
- package/dist/services/noaa.js.map +1 -1
- package/dist/services/openmeteo.d.ts +3 -2
- package/dist/services/openmeteo.d.ts.map +1 -1
- package/dist/services/openmeteo.js +21 -16
- package/dist/services/openmeteo.js.map +1 -1
- package/dist/types/lightning.d.ts +12 -0
- package/dist/types/lightning.d.ts.map +1 -1
- package/dist/utils/locationResolver.d.ts +52 -1
- package/dist/utils/locationResolver.d.ts.map +1 -1
- package/dist/utils/locationResolver.js +129 -0
- package/dist/utils/locationResolver.js.map +1 -1
- package/dist/utils/normals.d.ts +2 -1
- package/dist/utils/normals.d.ts.map +1 -1
- package/dist/utils/normals.js +27 -8
- package/dist/utils/normals.js.map +1 -1
- package/dist/utils/timezone.d.ts +1 -1
- package/dist/utils/timezone.d.ts.map +1 -1
- package/dist/utils/timezone.js +22 -16
- package/dist/utils/timezone.js.map +1 -1
- package/dist/utils/unitFormat.d.ts +62 -0
- package/dist/utils/unitFormat.d.ts.map +1 -0
- package/dist/utils/unitFormat.js +202 -0
- package/dist/utils/unitFormat.js.map +1 -0
- package/dist/utils/unitPreferences.d.ts +32 -0
- package/dist/utils/unitPreferences.d.ts.map +1 -0
- package/dist/utils/unitPreferences.js +59 -0
- package/dist/utils/unitPreferences.js.map +1 -0
- package/dist/utils/validation.d.ts +15 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +19 -0
- package/dist/utils/validation.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@dangahagan/weather-mcp)
|
|
4
4
|
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.dgahagan/weather-mcp)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](./docs/testing/TEST_SUITE_README.md)
|
|
7
7
|
[](https://nodejs.org)
|
|
8
8
|
|
|
9
|
-
**Give your AI assistant real weather data —
|
|
9
|
+
**Give your AI assistant real weather data — 17 tools, zero API keys, zero signup, zero cost.**
|
|
10
10
|
|
|
11
11
|
Weather MCP is a [Model Context Protocol](https://modelcontextprotocol.io) server that connects AI assistants (Claude, Cursor, Cline, Zed, and any other MCP client) to live weather data: forecasts, current conditions, alerts, air quality, marine conditions, lightning, radar, rivers, wildfires, and 85+ years of historical weather. It's built entirely on free public data sources — NOAA, Open-Meteo, USGS, NIFC, RainViewer, and Blitzortung.org — so there is nothing to sign up for and no key to paste in.
|
|
12
12
|
|
|
@@ -45,22 +45,23 @@ Choose this one if you want:
|
|
|
45
45
|
|
|
46
46
|
- **Genuinely free** — every data source is a free public API. No trial that expires, no credit card, no rate-limited "free tier" bait.
|
|
47
47
|
- **No API keys** — install to first forecast in under a minute. Nothing to configure, nothing to leak into a repo.
|
|
48
|
-
- **Fully open source** — MIT licensed, readable TypeScript, 1,
|
|
48
|
+
- **Fully open source** — MIT licensed, readable TypeScript, 1,129 tests. Audit it, fork it, fix it.
|
|
49
49
|
- **Privacy-respecting** — your queries go directly from your machine to public weather APIs. No middleman server, no telemetry.
|
|
50
|
-
- **Breadth** —
|
|
50
|
+
- **Breadth** — 17 tools covering weather, safety hazards (lightning, floods, wildfires), marine conditions, air quality, and historical data back to 1940. Most weather MCPs stop at forecasts.
|
|
51
51
|
|
|
52
52
|
The tradeoff is honest: US data (NOAA) is richer than international data (Open-Meteo), some tools are US-only, and free APIs come with fair-use rate limits. See [Coverage & Limitations](#coverage--limitations).
|
|
53
53
|
|
|
54
54
|
## Tools
|
|
55
55
|
|
|
56
|
-
All
|
|
56
|
+
All 17 tools, documented in detail in **[docs/TOOLS.md](./docs/TOOLS.md)**:
|
|
57
57
|
|
|
58
58
|
| Tool | What it does | Coverage |
|
|
59
59
|
|------|-------------|----------|
|
|
60
|
-
| `get_forecast` | Daily/hourly forecasts up to 16 days, sunrise/sunset, UV, precipitation probability, optional climate-normals comparison | 🌍 Global |
|
|
60
|
+
| `get_forecast` | Daily/hourly forecasts up to 16 days by coordinates, saved location, or city name; sunrise/sunset, UV, precipitation probability, optional climate-normals comparison | 🌍 Global |
|
|
61
61
|
| `get_current_conditions` | Real-time observations: temperature, wind, heat index/wind chill, snow depth, optional fire-weather indices | 🇺🇸 US |
|
|
62
62
|
| `get_alerts` | Active watches, warnings, and advisories sorted by severity | 🇺🇸 US |
|
|
63
63
|
| `get_historical_weather` | Hourly/daily observations from 1940 to present | 🌍 Global |
|
|
64
|
+
| `get_weather_summary` | One-call overview combining current conditions, forecast, and alerts (optionally air quality and lightning) | 🌍 Global |
|
|
64
65
|
| `search_location` | Geocode place names to coordinates ("Paris" → 48.85, 2.35) | 🌍 Global |
|
|
65
66
|
| `get_air_quality` | AQI (US/European scales), pollutants, UV index, health guidance | 🌍 Global |
|
|
66
67
|
| `get_marine_conditions` | Wave height, swell, ocean currents, Douglas Sea Scale — includes Great Lakes and major US bays | 🌍 Global |
|
|
@@ -74,7 +75,11 @@ All 16 tools, documented in detail in **[docs/TOOLS.md](./docs/TOOLS.md)**:
|
|
|
74
75
|
| `get_saved_location` | Details for one saved location | — |
|
|
75
76
|
| `remove_saved_location` | Delete a saved location | — |
|
|
76
77
|
|
|
77
|
-
> **Default preset:**
|
|
78
|
+
> **Default preset:** with no configuration, the server exposes 6 tools led by `get_weather_summary` (one call covers most "what's the weather?" questions), plus `forecast`, `current_conditions`, `alerts`, `search_location`, and `check_service_status`. Enable everything with one environment variable — see [Tool Selection](#tool-selection).
|
|
79
|
+
|
|
80
|
+
> **Consistent location input:** every location-based tool accepts the same three forms — `latitude`+`longitude`, a saved `location_name` (e.g. `"home"`), or a free-text `city_name` (e.g. `"Bend, Oregon"`, geocoded automatically). When a name is used, the response echoes the resolved place and coordinates.
|
|
81
|
+
|
|
82
|
+
> **Output verbosity:** high-volume tools (`get_forecast`, `get_alerts`, `get_weather_imagery`) accept `detail: "summary" | "standard" | "full"` (default `standard`) to trade completeness for token cost — e.g. `full` returns the complete alert text and uncapped hourly forecast.
|
|
78
83
|
|
|
79
84
|
## Feature highlights
|
|
80
85
|
|
|
@@ -84,6 +89,7 @@ All 16 tools, documented in detail in **[docs/TOOLS.md](./docs/TOOLS.md)**:
|
|
|
84
89
|
- **Safety-aware output** — lightning, wildfire, flood, and marine tools include graded safety assessments and plain-language recommendations, not just raw numbers.
|
|
85
90
|
- **Winter weather** — snow depth, snowfall accumulation, and ice accumulation forecasts with sensible trace-amount filtering.
|
|
86
91
|
- **Timezone-aware** — every timestamp is rendered in the location's local time with DST handled correctly.
|
|
92
|
+
- **Imperial or metric** — pick your units server-wide (`WEATHER_UNITS`) or per request (`units: "metric"`), with fine-grained overrides (wind in knots, pressure in hPa, 24-hour clock). Defaults to imperial. See [Units & Localization](#units--localization).
|
|
87
93
|
- **Built-in caching** — an LRU cache with per-data-type TTLs (5 minutes for alerts, 2 hours for forecasts, forever for finalized historical data) makes repeat queries return in <10ms and cuts upstream API calls by 50–80%.
|
|
88
94
|
- **Actionable errors** — failures explain what happened and link to the upstream status page instead of dumping a stack trace.
|
|
89
95
|
|
|
@@ -184,10 +190,10 @@ Control which tools are exposed to reduce context overhead:
|
|
|
184
190
|
|
|
185
191
|
| Preset | Tools |
|
|
186
192
|
|--------|-------|
|
|
187
|
-
| `basic` (default) | forecast, current_conditions, alerts, search_location, check_service_status |
|
|
188
|
-
| `standard` | basic + historical_weather |
|
|
189
|
-
| `full` | standard +
|
|
190
|
-
| `all` |
|
|
193
|
+
| `basic` (default) | weather_summary, forecast, current_conditions, alerts, search_location, check_service_status |
|
|
194
|
+
| `standard` | basic + historical_weather, air_quality, and saved-location tools |
|
|
195
|
+
| `full` | everything — standard + marine, imagery, lightning, rivers, wildfire (same as `all`) |
|
|
196
|
+
| `all` | all 17 tools |
|
|
191
197
|
|
|
192
198
|
```bash
|
|
193
199
|
ENABLED_TOOLS=all # Use a preset
|
|
@@ -198,11 +204,32 @@ ENABLED_TOOLS=all,-marine # Remove from a preset
|
|
|
198
204
|
|
|
199
205
|
Short aliases are supported: `forecast`, `current`, `alerts`, `historical`, `status`, `search`, `aqi`, `marine`, `radar`, `lightning`, and more.
|
|
200
206
|
|
|
207
|
+
### Units & Localization
|
|
208
|
+
|
|
209
|
+
Output defaults to **imperial** (°F, mph, inHg, miles) and can be switched to **metric** (°C, km/h, hPa, km) server-wide or per request. Precedence: a per-call parameter beats a per-unit env override, which beats the `WEATHER_UNITS` system default.
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
WEATHER_UNITS=metric # switch everything to metric
|
|
213
|
+
WEATHER_WIND_SPEED_UNIT=kn # ...but wind in knots
|
|
214
|
+
WEATHER_TIME_FORMAT=24h # 24-hour clock
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Or per call — the AI can honor "in Celsius" on the fly:
|
|
218
|
+
|
|
219
|
+
```jsonc
|
|
220
|
+
{ "latitude": 47.6, "longitude": -122.3, "units": "metric" }
|
|
221
|
+
{ "latitude": 47.6, "longitude": -122.3, "wind_speed_unit": "kn", "pressure_unit": "hPa" }
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Supported on `get_forecast`, `get_current_conditions`, and `get_historical_weather`. Wind accepts `mph`/`kmh`/`ms`/`kn`; pressure `inHg`/`hPa`. Domain-specialized readings (fire-weather heights, river gauge stage, and the marine tool's dual-unit wave output) keep their conventional units.
|
|
225
|
+
|
|
201
226
|
### Other settings
|
|
202
227
|
|
|
203
228
|
| Variable | Default | Purpose |
|
|
204
229
|
|----------|---------|---------|
|
|
205
230
|
| `ENABLED_TOOLS` | `basic` | Tool preset or list (see above) |
|
|
231
|
+
| `WEATHER_UNITS` | `imperial` | Default unit system: `imperial` or `metric` |
|
|
232
|
+
| `WEATHER_TEMPERATURE_UNIT` … | — | Per-unit overrides: `_TEMPERATURE_`(F/C), `_WIND_SPEED_`(mph/kmh/ms/kn), `_PRECIPITATION_`(inch/mm), `_PRESSURE_`(inHg/hPa), `_DISTANCE_`(mi/km), `_TIME_FORMAT`(12h/24h) |
|
|
206
233
|
| `CACHE_ENABLED` | `true` | Enable/disable response caching |
|
|
207
234
|
| `CACHE_MAX_SIZE` | `1000` | Max cache entries (100–10000) |
|
|
208
235
|
| `API_TIMEOUT_MS` | `30000` | Upstream API timeout (5000–120000) |
|
|
@@ -234,7 +261,7 @@ Being honest about what free public data can and can't do:
|
|
|
234
261
|
```bash
|
|
235
262
|
npm run build # Compile TypeScript
|
|
236
263
|
npm run dev # Run in development mode
|
|
237
|
-
npm test # Run all 1,
|
|
264
|
+
npm test # Run all 1,129 tests (~2 seconds)
|
|
238
265
|
npm run test:coverage # Coverage report
|
|
239
266
|
npm run audit # Dependency vulnerability scan
|
|
240
267
|
```
|
|
@@ -258,7 +285,7 @@ To report a vulnerability, see [SECURITY.md](./SECURITY.md).
|
|
|
258
285
|
|
|
259
286
|
## Documentation
|
|
260
287
|
|
|
261
|
-
- **[Tool Reference](./docs/TOOLS.md)** — all
|
|
288
|
+
- **[Tool Reference](./docs/TOOLS.md)** — all 17 tools: parameters, examples, sample output
|
|
262
289
|
- **[Client Setup](./docs/CLIENT_SETUP.md)** — step-by-step for 8 MCP clients
|
|
263
290
|
- **[Error Handling](./docs/ERROR_HANDLING.md)** — how failures are reported
|
|
264
291
|
- **[Testing Guide](./docs/testing/TESTING_GUIDE.md)** — manual testing procedures
|
package/dist/config/cache.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkDH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkDH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAkDd,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAYrE"}
|
package/dist/config/cache.js
CHANGED
|
@@ -64,6 +64,9 @@ export const CacheConfig = {
|
|
|
64
64
|
// Grid coordinate lookups (lat/lon -> grid mapping)
|
|
65
65
|
// These are geographic and never change
|
|
66
66
|
gridCoordinates: Infinity,
|
|
67
|
+
// City name -> coordinates geocoding lookups
|
|
68
|
+
// A place's coordinates are effectively static
|
|
69
|
+
geocoding: Infinity,
|
|
67
70
|
// Weather station lists
|
|
68
71
|
// Stations rarely change
|
|
69
72
|
stations: 24 * HOUR,
|
package/dist/config/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,iCAAiC;AACjC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;AACzB,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC;AACzB,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtB;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,YAAqB;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC7C,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,GAAW,EAAE,YAAoB,EAAE,GAAY,EAAE,GAAY;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAE7C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,KAAK,qBAAqB,YAAY,EAAE,CAAC,CAAC;QAC3E,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,MAAM,oBAAoB,GAAG,EAAE,CAAC,CAAC;QACjE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,MAAM,oBAAoB,GAAG,EAAE,CAAC,CAAC;QAClE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kCAAkC;IAClC,OAAO,EAAE,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC;IAE7C,yDAAyD;IACzD,sCAAsC;IACtC,OAAO,EAAE,YAAY,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;IAEzD,4BAA4B;IAC5B,oFAAoF;IACpF,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;IAEjE,sCAAsC;IACtC,GAAG,EAAE;QACH,oDAAoD;QACpD,wCAAwC;QACxC,eAAe,EAAE,QAAQ;QAEzB,6CAA6C;QAC7C,+CAA+C;QAC/C,SAAS,EAAE,QAAQ;QAEnB,wBAAwB;QACxB,yBAAyB;QACzB,QAAQ,EAAE,EAAE,GAAG,IAAI;QAEnB,kBAAkB;QAClB,8CAA8C;QAC9C,QAAQ,EAAE,CAAC,GAAG,IAAI;QAElB,6BAA6B;QAC7B,oDAAoD;QACpD,iBAAiB,EAAE,EAAE,GAAG,MAAM;QAE9B,iBAAiB;QACjB,sDAAsD;QACtD,MAAM,EAAE,CAAC,GAAG,MAAM;QAElB,wCAAwC;QACxC,6CAA6C;QAC7C,gBAAgB,EAAE,CAAC,GAAG,IAAI;QAE1B,kDAAkD;QAClD,6DAA6D;QAC7D,cAAc,EAAE,QAAQ;QAExB,8BAA8B;QAC9B,+BAA+B;QAC/B,aAAa,EAAE,CAAC,GAAG,MAAM;KAC1B;CACO,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAwB;IAC3D,MAAM,KAAK,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC;IAEzD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,gEAAgE;QAChE,OAAO,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,OAAO,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
package/dist/config/tools.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
/**
|
|
14
14
|
* Available tool names in the Weather MCP Server
|
|
15
15
|
*/
|
|
16
|
-
export type ToolName = 'get_forecast' | 'get_current_conditions' | 'get_alerts' | 'get_historical_weather' | 'check_service_status' | 'search_location' | 'get_air_quality' | 'get_marine_conditions' | 'get_weather_imagery' | 'get_lightning_activity' | 'get_river_conditions' | 'get_wildfire_info' | 'save_location' | 'list_saved_locations' | 'get_saved_location' | 'remove_saved_location';
|
|
16
|
+
export type ToolName = 'get_forecast' | 'get_current_conditions' | 'get_alerts' | 'get_historical_weather' | 'get_weather_summary' | 'check_service_status' | 'search_location' | 'get_air_quality' | 'get_marine_conditions' | 'get_weather_imagery' | 'get_lightning_activity' | 'get_river_conditions' | 'get_wildfire_info' | 'save_location' | 'list_saved_locations' | 'get_saved_location' | 'remove_saved_location';
|
|
17
17
|
/**
|
|
18
18
|
* Tool configuration singleton
|
|
19
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,wBAAwB,GACxB,YAAY,GACZ,wBAAwB,GACxB,sBAAsB,GACtB,iBAAiB,GACjB,iBAAiB,GACjB,uBAAuB,GACvB,qBAAqB,GACrB,wBAAwB,GACxB,sBAAsB,GACtB,mBAAmB,GACnB,eAAe,GACf,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,wBAAwB,GACxB,YAAY,GACZ,wBAAwB,GACxB,qBAAqB,GACrB,sBAAsB,GACtB,iBAAiB,GACjB,iBAAiB,GACjB,uBAAuB,GACvB,qBAAqB,GACrB,wBAAwB,GACxB,sBAAsB,GACtB,mBAAmB,GACnB,eAAe,GACf,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,CAAC;AAsP5B;;GAEG;AACH,cAAM,UAAU;IACd,OAAO,CAAC,YAAY,CAAgB;;IAapC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAIlC;;OAEG;IACH,eAAe,IAAI,QAAQ,EAAE;IAI7B;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAI/C;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;CAG9C;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC;AAG3C,eAAO,MAAM,OAAO,4BAAe,CAAC;AACpC,eAAO,MAAM,OAAO,0BAAe,CAAC"}
|
package/dist/config/tools.js
CHANGED
|
@@ -14,24 +14,27 @@
|
|
|
14
14
|
* Tool presets for easy configuration
|
|
15
15
|
*/
|
|
16
16
|
const TOOL_PRESETS = {
|
|
17
|
-
//
|
|
17
|
+
// The DEFAULT preset (used when ENABLED_TOOLS is unset), so this is what most
|
|
18
|
+
// users actually see. Led by get_weather_summary (one call answers the common
|
|
19
|
+
// "what's the weather?" question), with the atomic follow-up tools and
|
|
20
|
+
// geocoding/health-check helpers. Every tool accepts city_name/location_name,
|
|
21
|
+
// so this 6-tool set covers the bulk of real usage on its own.
|
|
18
22
|
basic: [
|
|
23
|
+
'get_weather_summary',
|
|
19
24
|
'get_forecast',
|
|
20
25
|
'get_current_conditions',
|
|
21
26
|
'get_alerts',
|
|
22
27
|
'search_location',
|
|
23
|
-
'check_service_status'
|
|
24
|
-
'save_location',
|
|
25
|
-
'list_saved_locations',
|
|
26
|
-
'get_saved_location',
|
|
27
|
-
'remove_saved_location'
|
|
28
|
+
'check_service_status'
|
|
28
29
|
],
|
|
29
|
-
// Basic +
|
|
30
|
+
// Basic + history, air quality, and saved-location personalization
|
|
30
31
|
standard: [
|
|
32
|
+
'get_weather_summary',
|
|
31
33
|
'get_forecast',
|
|
32
34
|
'get_current_conditions',
|
|
33
35
|
'get_alerts',
|
|
34
36
|
'get_historical_weather',
|
|
37
|
+
'get_air_quality',
|
|
35
38
|
'search_location',
|
|
36
39
|
'check_service_status',
|
|
37
40
|
'save_location',
|
|
@@ -39,22 +42,29 @@ const TOOL_PRESETS = {
|
|
|
39
42
|
'get_saved_location',
|
|
40
43
|
'remove_saved_location'
|
|
41
44
|
],
|
|
42
|
-
// Standard + environmental
|
|
45
|
+
// Standard + the specialized environmental & safety tools (everything)
|
|
43
46
|
full: [
|
|
47
|
+
'get_weather_summary',
|
|
44
48
|
'get_forecast',
|
|
45
49
|
'get_current_conditions',
|
|
46
50
|
'get_alerts',
|
|
47
51
|
'get_historical_weather',
|
|
52
|
+
'get_air_quality',
|
|
53
|
+
'get_marine_conditions',
|
|
54
|
+
'get_weather_imagery',
|
|
55
|
+
'get_lightning_activity',
|
|
56
|
+
'get_river_conditions',
|
|
57
|
+
'get_wildfire_info',
|
|
48
58
|
'search_location',
|
|
49
59
|
'check_service_status',
|
|
50
|
-
'get_air_quality',
|
|
51
60
|
'save_location',
|
|
52
61
|
'list_saved_locations',
|
|
53
62
|
'get_saved_location',
|
|
54
63
|
'remove_saved_location'
|
|
55
64
|
],
|
|
56
|
-
// All available tools
|
|
65
|
+
// All available tools (identical set to `full`)
|
|
57
66
|
all: [
|
|
67
|
+
'get_weather_summary',
|
|
58
68
|
'get_forecast',
|
|
59
69
|
'get_current_conditions',
|
|
60
70
|
'get_alerts',
|
|
@@ -84,6 +94,9 @@ const TOOL_ALIASES = {
|
|
|
84
94
|
'warnings': 'get_alerts',
|
|
85
95
|
'historical': 'get_historical_weather',
|
|
86
96
|
'history': 'get_historical_weather',
|
|
97
|
+
'summary': 'get_weather_summary',
|
|
98
|
+
'weather_summary': 'get_weather_summary',
|
|
99
|
+
'overview': 'get_weather_summary',
|
|
87
100
|
'status': 'check_service_status',
|
|
88
101
|
'location': 'search_location',
|
|
89
102
|
'search': 'search_location',
|
|
@@ -213,6 +226,7 @@ function isToolName(name) {
|
|
|
213
226
|
'get_current_conditions',
|
|
214
227
|
'get_alerts',
|
|
215
228
|
'get_historical_weather',
|
|
229
|
+
'get_weather_summary',
|
|
216
230
|
'check_service_status',
|
|
217
231
|
'search_location',
|
|
218
232
|
'get_air_quality',
|
package/dist/config/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit / localization configuration for weather output.
|
|
3
|
+
*
|
|
4
|
+
* The server defaults to imperial units (preserving historical behavior for
|
|
5
|
+
* existing users). A server-wide default can be set via environment variables,
|
|
6
|
+
* and individual tool calls may override it per request (see
|
|
7
|
+
* `src/utils/unitPreferences.ts`).
|
|
8
|
+
*
|
|
9
|
+
* Environment variables:
|
|
10
|
+
* WEATHER_UNITS imperial | metric (default: imperial)
|
|
11
|
+
* WEATHER_TEMPERATURE_UNIT F | C (override)
|
|
12
|
+
* WEATHER_WIND_SPEED_UNIT mph | kmh | ms | kn (override)
|
|
13
|
+
* WEATHER_PRECIPITATION_UNIT inch | mm (override)
|
|
14
|
+
* WEATHER_PRESSURE_UNIT inHg | hPa (override)
|
|
15
|
+
* WEATHER_DISTANCE_UNIT mi | km (override)
|
|
16
|
+
* WEATHER_TIME_FORMAT 12h | 24h (override)
|
|
17
|
+
*/
|
|
18
|
+
export type UnitSystem = 'imperial' | 'metric';
|
|
19
|
+
export type TemperatureUnit = 'F' | 'C';
|
|
20
|
+
export type WindSpeedUnit = 'mph' | 'kmh' | 'ms' | 'kn';
|
|
21
|
+
export type PrecipitationUnit = 'inch' | 'mm';
|
|
22
|
+
export type PressureUnit = 'inHg' | 'hPa';
|
|
23
|
+
export type DistanceUnit = 'mi' | 'km';
|
|
24
|
+
export type TimeFormat = '12h' | '24h';
|
|
25
|
+
/**
|
|
26
|
+
* A fully-resolved set of unit preferences. Every weather output path formats
|
|
27
|
+
* values according to one of these.
|
|
28
|
+
*/
|
|
29
|
+
export interface UnitPreferences {
|
|
30
|
+
temperature: TemperatureUnit;
|
|
31
|
+
windSpeed: WindSpeedUnit;
|
|
32
|
+
precipitation: PrecipitationUnit;
|
|
33
|
+
pressure: PressureUnit;
|
|
34
|
+
distance: DistanceUnit;
|
|
35
|
+
timeFormat: TimeFormat;
|
|
36
|
+
}
|
|
37
|
+
/** Imperial preset — the historical default. */
|
|
38
|
+
export declare const IMPERIAL_PREFERENCES: UnitPreferences;
|
|
39
|
+
/** Metric preset. */
|
|
40
|
+
export declare const METRIC_PREFERENCES: UnitPreferences;
|
|
41
|
+
/**
|
|
42
|
+
* Return the base preset for a unit system.
|
|
43
|
+
*/
|
|
44
|
+
export declare function systemPreferences(system: UnitSystem): UnitPreferences;
|
|
45
|
+
/**
|
|
46
|
+
* Accepted spellings for each unit, normalized to the canonical token.
|
|
47
|
+
* Kept permissive so both the env layer and per-call params can share it.
|
|
48
|
+
*/
|
|
49
|
+
declare const NORMALIZERS: {
|
|
50
|
+
readonly system: Map<string, UnitSystem>;
|
|
51
|
+
readonly temperature: Map<string, TemperatureUnit>;
|
|
52
|
+
readonly windSpeed: Map<string, WindSpeedUnit>;
|
|
53
|
+
readonly precipitation: Map<string, PrecipitationUnit>;
|
|
54
|
+
readonly pressure: Map<string, PressureUnit>;
|
|
55
|
+
readonly distance: Map<string, DistanceUnit>;
|
|
56
|
+
readonly timeFormat: Map<string, TimeFormat>;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Normalize a raw string to a canonical unit token, or return undefined if the
|
|
60
|
+
* value is unrecognized. Exported for reuse by the per-call resolver.
|
|
61
|
+
*/
|
|
62
|
+
export declare function normalizeUnit<K extends keyof typeof NORMALIZERS>(kind: K, raw: string | undefined): (typeof NORMALIZERS)[K] extends Map<string, infer V> ? V | undefined : never;
|
|
63
|
+
/**
|
|
64
|
+
* The server-wide default unit preferences, resolved once at startup from the
|
|
65
|
+
* environment. Per-call tool parameters layer on top of this.
|
|
66
|
+
*/
|
|
67
|
+
export declare const defaultUnitPreferences: UnitPreferences;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=units.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/config/units.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC/C,MAAM,MAAM,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC;AACxC,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AACxD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAAC;AAC9C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC;AAC1C,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;AACvC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,aAAa,CAAC;IACzB,aAAa,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,gDAAgD;AAChD,eAAO,MAAM,oBAAoB,EAAE,eAOlC,CAAC;AAEF,qBAAqB;AACrB,eAAO,MAAM,kBAAkB,EAAE,eAOhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,CAErE;AAED;;;GAGG;AACH,QAAA,MAAM,WAAW;;;;;;;;CA8BP,CAAC;AAEX;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,OAAO,WAAW,EAC9D,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,CAI9E;AAoCD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAAuC,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit / localization configuration for weather output.
|
|
3
|
+
*
|
|
4
|
+
* The server defaults to imperial units (preserving historical behavior for
|
|
5
|
+
* existing users). A server-wide default can be set via environment variables,
|
|
6
|
+
* and individual tool calls may override it per request (see
|
|
7
|
+
* `src/utils/unitPreferences.ts`).
|
|
8
|
+
*
|
|
9
|
+
* Environment variables:
|
|
10
|
+
* WEATHER_UNITS imperial | metric (default: imperial)
|
|
11
|
+
* WEATHER_TEMPERATURE_UNIT F | C (override)
|
|
12
|
+
* WEATHER_WIND_SPEED_UNIT mph | kmh | ms | kn (override)
|
|
13
|
+
* WEATHER_PRECIPITATION_UNIT inch | mm (override)
|
|
14
|
+
* WEATHER_PRESSURE_UNIT inHg | hPa (override)
|
|
15
|
+
* WEATHER_DISTANCE_UNIT mi | km (override)
|
|
16
|
+
* WEATHER_TIME_FORMAT 12h | 24h (override)
|
|
17
|
+
*/
|
|
18
|
+
/** Imperial preset — the historical default. */
|
|
19
|
+
export const IMPERIAL_PREFERENCES = {
|
|
20
|
+
temperature: 'F',
|
|
21
|
+
windSpeed: 'mph',
|
|
22
|
+
precipitation: 'inch',
|
|
23
|
+
pressure: 'inHg',
|
|
24
|
+
distance: 'mi',
|
|
25
|
+
timeFormat: '12h',
|
|
26
|
+
};
|
|
27
|
+
/** Metric preset. */
|
|
28
|
+
export const METRIC_PREFERENCES = {
|
|
29
|
+
temperature: 'C',
|
|
30
|
+
windSpeed: 'kmh',
|
|
31
|
+
precipitation: 'mm',
|
|
32
|
+
pressure: 'hPa',
|
|
33
|
+
distance: 'km',
|
|
34
|
+
timeFormat: '24h',
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Return the base preset for a unit system.
|
|
38
|
+
*/
|
|
39
|
+
export function systemPreferences(system) {
|
|
40
|
+
return system === 'metric' ? { ...METRIC_PREFERENCES } : { ...IMPERIAL_PREFERENCES };
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Accepted spellings for each unit, normalized to the canonical token.
|
|
44
|
+
* Kept permissive so both the env layer and per-call params can share it.
|
|
45
|
+
*/
|
|
46
|
+
const NORMALIZERS = {
|
|
47
|
+
system: new Map([
|
|
48
|
+
['imperial', 'imperial'], ['us', 'imperial'], ['metric', 'metric'], ['si', 'metric'],
|
|
49
|
+
]),
|
|
50
|
+
temperature: new Map([
|
|
51
|
+
['f', 'F'], ['fahrenheit', 'F'], ['°f', 'F'],
|
|
52
|
+
['c', 'C'], ['celsius', 'C'], ['centigrade', 'C'], ['°c', 'C'],
|
|
53
|
+
]),
|
|
54
|
+
windSpeed: new Map([
|
|
55
|
+
['mph', 'mph'], ['mi/h', 'mph'],
|
|
56
|
+
['kmh', 'kmh'], ['km/h', 'kmh'], ['kph', 'kmh'],
|
|
57
|
+
['ms', 'ms'], ['m/s', 'ms'], ['mps', 'ms'],
|
|
58
|
+
['kn', 'kn'], ['kt', 'kn'], ['kts', 'kn'], ['knot', 'kn'], ['knots', 'kn'],
|
|
59
|
+
]),
|
|
60
|
+
precipitation: new Map([
|
|
61
|
+
['inch', 'inch'], ['inches', 'inch'], ['in', 'inch'],
|
|
62
|
+
['mm', 'mm'], ['millimeter', 'mm'], ['millimeters', 'mm'],
|
|
63
|
+
]),
|
|
64
|
+
pressure: new Map([
|
|
65
|
+
['inhg', 'inHg'], ['in', 'inHg'],
|
|
66
|
+
['hpa', 'hPa'], ['mb', 'hPa'], ['mbar', 'hPa'], ['millibar', 'hPa'], ['millibars', 'hPa'],
|
|
67
|
+
]),
|
|
68
|
+
distance: new Map([
|
|
69
|
+
['mi', 'mi'], ['mile', 'mi'], ['miles', 'mi'],
|
|
70
|
+
['km', 'km'], ['kilometer', 'km'], ['kilometers', 'km'],
|
|
71
|
+
]),
|
|
72
|
+
timeFormat: new Map([
|
|
73
|
+
['12h', '12h'], ['12', '12h'], ['12-hour', '12h'], ['ampm', '12h'],
|
|
74
|
+
['24h', '24h'], ['24', '24h'], ['24-hour', '24h'], ['military', '24h'],
|
|
75
|
+
]),
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Normalize a raw string to a canonical unit token, or return undefined if the
|
|
79
|
+
* value is unrecognized. Exported for reuse by the per-call resolver.
|
|
80
|
+
*/
|
|
81
|
+
export function normalizeUnit(kind, raw) {
|
|
82
|
+
const map = NORMALIZERS[kind];
|
|
83
|
+
if (raw === undefined || raw === null)
|
|
84
|
+
return undefined;
|
|
85
|
+
return map.get(String(raw).trim().toLowerCase());
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Resolve an environment override for one unit field, warning on invalid input.
|
|
89
|
+
*/
|
|
90
|
+
function envOverride(kind, key) {
|
|
91
|
+
const raw = process.env[key];
|
|
92
|
+
if (raw === undefined || raw.trim() === '')
|
|
93
|
+
return undefined;
|
|
94
|
+
const normalized = normalizeUnit(kind, raw);
|
|
95
|
+
if (normalized === undefined) {
|
|
96
|
+
console.warn(`Invalid ${key}: "${raw}". Ignoring and using default.`);
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
return normalized;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Build the server-wide default preferences from the environment.
|
|
103
|
+
*/
|
|
104
|
+
function loadUnitPreferences() {
|
|
105
|
+
const system = envOverride('system', 'WEATHER_UNITS') ?? 'imperial';
|
|
106
|
+
const base = systemPreferences(system);
|
|
107
|
+
return {
|
|
108
|
+
temperature: envOverride('temperature', 'WEATHER_TEMPERATURE_UNIT') ?? base.temperature,
|
|
109
|
+
windSpeed: envOverride('windSpeed', 'WEATHER_WIND_SPEED_UNIT') ?? base.windSpeed,
|
|
110
|
+
precipitation: envOverride('precipitation', 'WEATHER_PRECIPITATION_UNIT') ?? base.precipitation,
|
|
111
|
+
pressure: envOverride('pressure', 'WEATHER_PRESSURE_UNIT') ?? base.pressure,
|
|
112
|
+
distance: envOverride('distance', 'WEATHER_DISTANCE_UNIT') ?? base.distance,
|
|
113
|
+
timeFormat: envOverride('timeFormat', 'WEATHER_TIME_FORMAT') ?? base.timeFormat,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The server-wide default unit preferences, resolved once at startup from the
|
|
118
|
+
* environment. Per-call tool parameters layer on top of this.
|
|
119
|
+
*/
|
|
120
|
+
export const defaultUnitPreferences = loadUnitPreferences();
|
|
121
|
+
//# sourceMappingURL=units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/config/units.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAuBH,gDAAgD;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,MAAM;IACrB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,oBAAoB,EAAE,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,IAAI,GAAG,CAAqB;QAClC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;KACrF,CAAC;IACF,WAAW,EAAE,IAAI,GAAG,CAA0B;QAC5C,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;QAC5C,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;KAC/D,CAAC;IACF,SAAS,EAAE,IAAI,GAAG,CAAwB;QACxC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QAC/B,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;QAC/C,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;QAC1C,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;KAC3E,CAAC;IACF,aAAa,EAAE,IAAI,GAAG,CAA4B;QAChD,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;QACpD,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC;KAC1D,CAAC;IACF,QAAQ,EAAE,IAAI,GAAG,CAAuB;QACtC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;QAChC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC;KAC1F,CAAC;IACF,QAAQ,EAAE,IAAI,GAAG,CAAuB;QACtC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;QAC7C,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;KACxD,CAAC;IACF,UAAU,EAAE,IAAI,GAAG,CAAqB;QACtC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QAClE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;KACvE,CAAC;CACM,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAO,EACP,GAAuB;IAEvB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAyB,CAAC;IACtD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAkB,CAAC;IACjE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAU,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,IAAO,EACP,GAAW;IAEX,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,gCAAgC,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,UAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB;IAC1B,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC;IACpE,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEvC,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,aAAa,EAAE,0BAA0B,CAAC,IAAI,IAAI,CAAC,WAAW;QACvF,SAAS,EAAE,WAAW,CAAC,WAAW,EAAE,yBAAyB,CAAC,IAAI,IAAI,CAAC,SAAS;QAChF,aAAa,EAAE,WAAW,CAAC,eAAe,EAAE,4BAA4B,CAAC,IAAI,IAAI,CAAC,aAAa;QAC/F,QAAQ,EAAE,WAAW,CAAC,UAAU,EAAE,uBAAuB,CAAC,IAAI,IAAI,CAAC,QAAQ;QAC3E,QAAQ,EAAE,WAAW,CAAC,UAAU,EAAE,uBAAuB,CAAC,IAAI,IAAI,CAAC,QAAQ;QAC3E,UAAU,EAAE,WAAW,CAAC,YAAY,EAAE,qBAAqB,CAAC,IAAI,IAAI,CAAC,UAAU;KAChF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAoB,mBAAmB,EAAE,CAAC"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* Handler for get_air_quality tool
|
|
3
3
|
*/
|
|
4
4
|
import { OpenMeteoService } from '../services/openmeteo.js';
|
|
5
|
-
|
|
5
|
+
import { LocationStore } from '../services/locationStore.js';
|
|
6
|
+
import { GeocodingService } from '../services/geocoding.js';
|
|
7
|
+
export declare function handleGetAirQuality(args: unknown, openMeteoService: OpenMeteoService, locationStore: LocationStore, geocodingService: GeocodingService): Promise<{
|
|
6
8
|
content: Array<{
|
|
7
9
|
type: string;
|
|
8
10
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"airQualityHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/airQualityHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"airQualityHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/airQualityHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAqB5D,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,OAAO,EACb,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA6B7D"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Handler for get_air_quality tool
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { resolveLocationAsync, prependLocationLine } from '../utils/locationResolver.js';
|
|
5
|
+
import { validateOptionalBoolean } from '../utils/validation.js';
|
|
5
6
|
import { getUSAQICategory, getEuropeanAQICategory, getUVIndexCategory, getPollutantInfo, formatPollutantConcentration, shouldUseUSAQI } from '../utils/airQuality.js';
|
|
6
|
-
export async function handleGetAirQuality(args, openMeteoService) {
|
|
7
|
-
//
|
|
8
|
-
const
|
|
7
|
+
export async function handleGetAirQuality(args, openMeteoService, locationStore, geocodingService) {
|
|
8
|
+
// Resolve location from coordinates, a saved location name, or a geocoded city name
|
|
9
|
+
const resolved = await resolveLocationAsync(args, locationStore, geocodingService);
|
|
10
|
+
const { latitude, longitude } = resolved;
|
|
9
11
|
const forecast = validateOptionalBoolean(args?.forecast, 'forecast', false);
|
|
10
12
|
// Get air quality data
|
|
11
13
|
const airQualityData = await openMeteoService.getAirQuality(latitude, longitude, forecast, 5 // Default 5-day forecast
|
|
12
14
|
);
|
|
13
15
|
// Format the air quality data for display
|
|
14
16
|
const output = formatAirQuality(airQualityData, latitude, longitude, forecast);
|
|
15
|
-
return {
|
|
17
|
+
return prependLocationLine({
|
|
16
18
|
content: [
|
|
17
19
|
{
|
|
18
20
|
type: 'text',
|
|
19
21
|
text: output
|
|
20
22
|
}
|
|
21
23
|
]
|
|
22
|
-
};
|
|
24
|
+
}, resolved);
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Format air quality data as markdown
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"airQualityHandler.js","sourceRoot":"","sources":["../../src/handlers/airQualityHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"airQualityHandler.js","sourceRoot":"","sources":["../../src/handlers/airQualityHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAC5B,cAAc,EACf,MAAM,wBAAwB,CAAC;AAWhC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAa,EACb,gBAAkC,EAClC,aAA4B,EAC5B,gBAAkC;IAElC,oFAAoF;IACpF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAsB,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACrG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;IACzC,MAAM,QAAQ,GAAG,uBAAuB,CACrC,IAAuB,EAAE,QAAQ,EAClC,UAAU,EACV,KAAK,CACN,CAAC;IAEF,uBAAuB;IACvB,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,aAAa,CACzD,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,CAAC,CAAC,yBAAyB;KAC5B,CAAC;IAEF,0CAA0C;IAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE/E,OAAO,mBAAmB,CAAC;QACzB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,IAAiC,EACjC,QAAgB,EAChB,SAAiB,EACjB,eAAwB;IAExB,IAAI,MAAM,GAAG,0BAA0B,CAAC;IACxC,MAAM,IAAI,iBAAiB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,MAAM,IAAI,iBAAiB,IAAI,CAAC,QAAQ,IAAI,CAAC;IAC7C,MAAM,IAAI,kBAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5D,MAAM,IAAI,IAAI,CAAC;IAEf,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAErD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,mEAAmE,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,yBAAyB,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC;IAEtE,8CAA8C;IAC9C,IAAI,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClC,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtC,QAAQ,CAAC,KAAK,KAAK,gCAAgC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5D,QAAQ,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACvC,QAAQ,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhE,MAAM,IAAI,MAAM,KAAK,0BAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAChF,MAAM,IAAI,iBAAiB,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,KAAK,CAAC;QAClE,MAAM,IAAI,oBAAoB,QAAQ,CAAC,WAAW,MAAM,CAAC;QACzD,MAAM,IAAI,6BAA6B,QAAQ,CAAC,kBAAkB,MAAM,CAAC;QACzE,IAAI,QAAQ,CAAC,mBAAmB,KAAK,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,QAAQ,CAAC,mBAAmB,MAAM,CAAC;QAClE,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClC,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACtC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAClC,QAAQ,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3D,MAAM,IAAI,MAAM,KAAK,gCAAgC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;QAC5F,MAAM,IAAI,iBAAiB,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,KAAK,CAAC;QAClE,MAAM,IAAI,oBAAoB,QAAQ,CAAC,WAAW,MAAM,CAAC;QACzD,MAAM,IAAI,6BAA6B,QAAQ,CAAC,kBAAkB,MAAM,CAAC;QACzE,IAAI,QAAQ,CAAC,mBAAmB,KAAK,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,mBAAmB,QAAQ,CAAC,mBAAmB,MAAM,CAAC;QAClE,CAAC;IACH,CAAC;IAED,WAAW;IACX,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnC,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxC,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACpC,UAAU,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAE/D,MAAM,IAAI,MAAM,OAAO,cAAc,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,IAAI,cAAc,UAAU,CAAC,KAAK,IAAI,CAAC;QAC7C,MAAM,IAAI,oBAAoB,UAAU,CAAC,WAAW,IAAI,CAAC;QACzD,MAAM,IAAI,uBAAuB,UAAU,CAAC,cAAc,MAAM,CAAC;QAEjE,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5G,MAAM,IAAI,4CAA4C,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACrG,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,IAAI,iCAAiC,CAAC;IAE5C,MAAM,UAAU,GAAG;QACjB,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;QACxE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;QACrE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;QACxE,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE;QACzG,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE;QACtG,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE;KACvG,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,aAAa,GAAG,4BAA4B,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAErF,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,aAAa,IAAI,CAAC;QACnD,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,4BAA4B,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAChG,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,aAAa,IAAI,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,8BAA8B,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC;IACpH,CAAC;IAED,MAAM,IAAI,IAAI,CAAC;IAEf,mCAAmC;IACnC,IAAI,QAAQ,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnD,MAAM,IAAI,kBAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,sBAAsB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,QAAQ,CAAC;IAC9H,CAAC;SAAM,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACrD,MAAM,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,QAAQ,CAAC;IACtG,CAAC;IAED,oCAAoC;IACpC,IAAI,eAAe,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,SAAS,CAAC;QACpB,MAAM,IAAI,6BAA6B,CAAC;QAExC,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,UAAU,WAAW,eAAe,CAAC;QAE/C,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;YAEnD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAEvD,gCAAgC;YAChC,IAAI,MAAM,GAAG,QAAQ,CAAC;YACtB,IAAI,MAAM,GAAG,CAAC,QAAQ,CAAC;YAEvB,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBACpC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAEzF,MAAM,IAAI,KAAK,SAAS,CAAC,kBAAkB,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC;YACtF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,KAAK,KAAK,CAAC;QACjH,CAAC;QAED,MAAM,IAAI,wBAAwB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC;IAC/E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* Handler for get_alerts tool
|
|
3
3
|
*/
|
|
4
4
|
import { NOAAService } from '../services/noaa.js';
|
|
5
|
-
|
|
5
|
+
import { LocationStore } from '../services/locationStore.js';
|
|
6
|
+
import { GeocodingService } from '../services/geocoding.js';
|
|
7
|
+
export declare function handleGetAlerts(args: unknown, noaaService: NOAAService, locationStore: LocationStore, geocodingService: GeocodingService): Promise<{
|
|
6
8
|
content: Array<{
|
|
7
9
|
type: string;
|
|
8
10
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alertsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/alertsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"alertsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/alertsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAc5D,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA8H7D"}
|