mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 10:24:02 +00:00
Hosts serve panels from their own sites and may refuse other addresses; Codex refuses any address on the user's machine. The panel now never requests the app's server: it loads the app's panel build and data through panel_request, a tool only the panel may call, which requests the path from the app's server. One path in every host; only map providers load directly. npm run build:panel writes the panel build to dist/panel, served at /panel/: one app script, one stylesheet, Cesium's script, and Cesium's workers as one script Cesium runs from memory. Tools may now be marked app-only. The panel CORS rules are gone.
128 lines
2.9 KiB
JavaScript
128 lines
2.9 KiB
JavaScript
/**
|
|
* Tools that answer questions from God's Eye View data, independent of the
|
|
* surface that exposes them. See docs/TOOLS.md.
|
|
*/
|
|
|
|
import {
|
|
aircraftInArea,
|
|
findAircraft,
|
|
getAircraftInfo,
|
|
getAircraftTrack,
|
|
} from './queries/aviation.js';
|
|
import { getWeatherMap, getWind } from './queries/atmosphere.js';
|
|
import { findSubmarineCables } from './queries/cables.js';
|
|
import {
|
|
getHudCaption,
|
|
militaryAwareness,
|
|
situationBrief,
|
|
} from './queries/brief.js';
|
|
import {
|
|
findMilitaryInstallations,
|
|
getCyclones,
|
|
getFirePerimeters,
|
|
getMapFeatures,
|
|
getRegionalBrief,
|
|
getTerrainHeight,
|
|
getWeather,
|
|
} from './queries/environment.js';
|
|
import { getBhoteKoshiFlood } from './queries/events.js';
|
|
import { getActiveFires, getEarthquakes } from './queries/hazards.js';
|
|
import { getRecentImagery } from './queries/imagery.js';
|
|
import { findInfrastructure } from './queries/infrastructure.js';
|
|
import {
|
|
findVessel,
|
|
getVesselTrack,
|
|
vesselsInArea,
|
|
} from './queries/maritime.js';
|
|
import {
|
|
getBikeShare,
|
|
getTrafficFlow,
|
|
getTransitVehicles,
|
|
} from './queries/mobility.js';
|
|
import { placesNearby, planRoute, searchPlaces } from './queries/places.js';
|
|
import { panelRequest } from './queries/panelRequest.js';
|
|
import { showInGodsEyeView } from './queries/share.js';
|
|
import { findAlprCameras } from './queries/surveillance.js';
|
|
import {
|
|
findCctvCameras,
|
|
findRadioStations,
|
|
getCctvSnapshot,
|
|
} from './queries/media.js';
|
|
import {
|
|
getRecentLaunches,
|
|
nextSatellitePass,
|
|
satellitesOverhead,
|
|
} from './queries/space.js';
|
|
|
|
export {
|
|
defineTool,
|
|
composeCatalog,
|
|
ToolError,
|
|
TOOL_ERROR_CODES,
|
|
} from './catalog.js';
|
|
export {
|
|
AREA_SCHEMA,
|
|
resolveArea,
|
|
areaCenter,
|
|
areaContains,
|
|
distanceKm,
|
|
} from './area.js';
|
|
export { LIMIT_SCHEMA, DEFAULT_LIMIT, MAX_LIMIT, capRows } from './results.js';
|
|
export { toFunctionOutput, toFunctionTools } from './functions.js';
|
|
export {
|
|
SURFACES,
|
|
TOOL_SURFACES,
|
|
catalogForSurface,
|
|
toolsForSurface,
|
|
} from './surfaces.js';
|
|
export {
|
|
createGeocodePlaceService,
|
|
createPlaceSearchService,
|
|
createRouteService,
|
|
placeFromGeocodeResult,
|
|
} from './places.js';
|
|
|
|
/** Every query Core defines, in a stable order. */
|
|
export const coreTools = Object.freeze([
|
|
getEarthquakes,
|
|
getActiveFires,
|
|
getRecentLaunches,
|
|
aircraftInArea,
|
|
findAircraft,
|
|
getAircraftTrack,
|
|
getAircraftInfo,
|
|
vesselsInArea,
|
|
findVessel,
|
|
getVesselTrack,
|
|
nextSatellitePass,
|
|
satellitesOverhead,
|
|
findCctvCameras,
|
|
getCctvSnapshot,
|
|
findAlprCameras,
|
|
findRadioStations,
|
|
searchPlaces,
|
|
placesNearby,
|
|
planRoute,
|
|
getBikeShare,
|
|
getTransitVehicles,
|
|
getTrafficFlow,
|
|
getWeather,
|
|
getWeatherMap,
|
|
getWind,
|
|
getRecentImagery,
|
|
findSubmarineCables,
|
|
findInfrastructure,
|
|
getBhoteKoshiFlood,
|
|
getRegionalBrief,
|
|
getCyclones,
|
|
getFirePerimeters,
|
|
getTerrainHeight,
|
|
findMilitaryInstallations,
|
|
getMapFeatures,
|
|
situationBrief,
|
|
militaryAwareness,
|
|
getHudCaption,
|
|
showInGodsEyeView,
|
|
panelRequest,
|
|
]);
|