feat: add aviation and satellite tools

Add aircraft_in_area, find_aircraft, get_aircraft_track and
get_aircraft_info over the live aircraft sources, with an optional
military feed, and next_satellite_pass and satellites_overhead over the
satellite catalog and the existing pass predictor.

Source failures from the live contract now become tool errors with the
matching code, so a rate limit reaches clients as retry_later with a
wait time. Tool schemas may use pattern.
This commit is contained in:
Sameh Khamis committed 2026-10-01 12:05:50 -07:00
1 parent 9895942633
commit 22c3fe40b0
16 files changed
+1111 -16

No files matched your search

+8
View File
@@ -6,6 +6,11 @@
import { createUsgsEarthquakeSource } from '../../src/layers/earthquakes/source.js';
import { createFirmsSource } from '../../src/layers/firms/source.js';
import { createLaunchSource } from '../../src/layers/launches/source.js';
import { createSatelliteSource } from '../../src/layers/satellites/source.js';
import {
createAdsbLolSource,
createOpenSkySource,
} from '../../src/sources/live/standalone.js';
import { createGeocodePlaceService } from '../../src/tools/places.js';
export const DEFAULT_API_BASE = 'http://localhost:4173';
@@ -34,6 +39,9 @@ export function createLocalToolServices(options = {}) {
earthquakes: createUsgsEarthquakeSource({ fetchImpl }),
fires: createFirmsSource({ fetchImpl }),
launches: createLaunchSource({ fetchImpl }),
aircraft: createOpenSkySource({ fetchImpl }),
military: createAdsbLolSource({ fetchImpl }),
satellites: createSatelliteSource({ fetchImpl }),
places: createGeocodePlaceService({ fetchImpl }),
};
}