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

+24 -2
View File
@@ -3,8 +3,18 @@
* surface that exposes them. See docs/TOOLS.md.
*/
import {
aircraftInArea,
findAircraft,
getAircraftInfo,
getAircraftTrack,
} from './queries/aviation.js';
import { getActiveFires, getEarthquakes } from './queries/hazards.js';
import { getRecentLaunches } from './queries/space.js';
import {
getRecentLaunches,
nextSatellitePass,
satellitesOverhead,
} from './queries/space.js';
export {
defineTool,
@@ -12,7 +22,13 @@ export {
ToolError,
TOOL_ERROR_CODES,
} from './catalog.js';
export { AREA_SCHEMA, resolveArea, areaContains, distanceKm } from './area.js';
export {
AREA_SCHEMA,
resolveArea,
areaCenter,
areaContains,
distanceKm,
} from './area.js';
export { LIMIT_SCHEMA, DEFAULT_LIMIT, MAX_LIMIT, capRows } from './results.js';
export { createGeocodePlaceService, placeFromGeocodeResult } from './places.js';
@@ -21,4 +37,10 @@ export const coreTools = Object.freeze([
getEarthquakes,
getActiveFires,
getRecentLaunches,
aircraftInArea,
findAircraft,
getAircraftTrack,
getAircraftInfo,
nextSatellitePass,
satellitesOverhead,
]);