Tools provided
Tools the agent exposes — your AI client calls them automatically when it needs them.
- query_vessels — Query AIS vessel positions within a geographic area and time window. Returns vessel name, MMSI, type, position, speed, heading, destination.writeidempotentopen internet
- query_aircraft — Query ADS-B aircraft positions within a geographic area.writeidempotentopen internet
- query_conflicts — Query armed-conflict events (GDELT-backed, with ACLED fallback when licensed) by region / date / event type / actor.writeidempotentopen internet
- query_refineries — Query oil refineries from OpenStreetMap (canonical refinery tags only — petroleum_refinery, oil_refinery, refinery). ~700 facilities globally, each with name, operator, product, capacity (when tagged), country, city. Use for questions like "refineries in Saudi Arabia", "oil refining capacity on the Gulf Coast", "European refineries near Russian crude pipelines". Pass country to slice (ISO2 code or country name).writeidempotentopen internet
- query_mines — Query mineral deposits from the USGS Mineral Resources Data System (MRDS — public-domain US Government, ~304k records globally, archival snapshot frozen at 2011). Each row carries site name, development status (Producer / Past Producer / Prospect / Occurrence / Plant), commodities (commod1/2/3 + commodities array), country, state, deposit type. Default returns only Producer / Past Producer / Plant rows with a known commod1 (significant sites); pass include_minor=true for prospects and occurrencewriteidempotentopen internet
- query_power_plants — Query unit-level power plants from the Global Energy Monitor — Global Integrated Power Tracker (GIPT). ~127k operating units worldwide spanning coal, oil/gas, nuclear, geothermal, bioenergy, utility-scale solar, wind, and hydropower. Each row carries plant name, fuel type, capacity (MW), status, start year, country, owner. Use for questions like "nuclear plants in France above 1 GW", "coal capacity in India", "operating bioenergy plants in Brazil". Pass include_minor=true to bypass the operatingwriteidempotentopen internet
- query_pipelines — Query gas pipelines (GEM GGIT), oil/NGL pipelines (GEM GOIT), and LNG terminals (GEM GGIT) in one call. Returns a mixed list — each row has infra_subtype=pipeline_gas|pipeline_oil|lng_terminal so you can disambiguate. Pipeline rows carry start/end country, length, capacity (bcm/y for gas, BOEd or raw bpd for oil), status, owner, route accuracy. LNG terminals carry facility_type=import|export, capacity in mtpa, country. Use for questions like "Russian gas pipelines into Europe", "LNG export termiwriteidempotentopen internet
- query_airports — Query airports from OurAirports. Default returns the ~7,500 commercially-significant airports (large airports + medium airports with scheduled service); pass include_minor=true for the full ~85k including small airfields, heliports, etc. Each row carries name, type, IATA/ICAO codes, country, municipality, elevation, scheduled_service. Use for questions like "airports near recent conflict events", "ICAO code for Heathrow", "all scheduled-service airports in Ukraine".writeidempotentopen internet
- query_ports — Query commercial seaports from the NGA World Port Index (~3,800 ports worldwide). Each row carries port name, country, harbor size (Large/Medium/Small/Very Small), harbor type, shelter rating, channel depth in metres, repair facilities. Use for questions like "ports near Bab-el-Mandeb", "deepwater ports in West Africa", "all large harbors in the Mediterranean". Pass harbor_size to slice to a single tier.writeidempotentopen internet
- query_weather — Query current weather conditions for a specific location (Open-Meteo).writeidempotentopen internet
- query_thermal_anomalies — Query NASA FIRMS satellite thermal anomalies (VIIRS 375m + MODIS 1km, near-real-time, ~3h latency). Two modes. mode="facilities" (default) reads the pre-aggregated per-facility-per-day rollup — use it for facility-centric questions ("thermal anomalies at Russian refineries this week", "which Gulf refineries lit up", "anything at the Ryazan refinery"). Filter by country, facility_type (refinery | power_plant), facility_name, days. Returns per facility: total detections, max FRP (fire radiative powriteidempotentopen internet
- query_nightlights — Query NASA Black Marble night-lights (VIIRS VNP46A2, ~500 m): moonlight/atmosphere-corrected nighttime radiance sampled nightly at every FIRMS-watched facility, plus significance events judged against each facility's OWN clear-night baseline. Two modes. mode="events" (default) reads SITE-LEVEL significance events — went_dark_lights (a habitually-lit facility dark across several consecutive CLEAR nights: the outage signal), surge (materially brighter than its own norm), first_light (a reliably-dawriteidempotentopen internet
- query_agent_reports — Retrieve recent intelligence reports generated by eYKON Sub-Agents. Returns structured reports with severity, narrative, and entity references.writeidempotentopen internet
- query_posture_scores — Most recent posture_scores rows per theatre. Returns composite + 5-domain sub-scores.writeidempotentopen internet
- query_convergences — Recent convergence_events (anomaly-of-anomalies) with synthesis and contributing anomaly IDs.writeidempotentopen internet
- query_shadow_fleet_leads — Ranked shadow-fleet vessel leads, scored from silence relative to the OWN observed reporting cadence of each vessel (14-day baseline), vanished-under-way, and flag-of-convenience. Vessels without a cadence baseline yet are unscored, not defaulted. Each lead carries silence_hours = hours since its last AIS fix, measured against the data clock. NOTE: the commodity argument is accepted but NOT applied — vessel type is known for under 1% of the tracked fleet, so all values return the same list; do nwriteidempotentopen internet
- query_dark_contact_events — Dark-contact EVENTS from the Shadow Fleet board — resolvable observations with a lifecycle, not a leads snapshot. An event opens when a vessel goes silent >=12x its OWN 14-day cadence inside a live coverage box, and resolves within 72 h as: reappeared (a newer fix arrived — positive, feed-wide observation), still_dark (NOT RE-OBSERVED by our coverage — a statement about the instrument, never proof the transponder was off; say "not re-observed", never "confirmed dark"), or void (the coverage boxwriteidempotentopen internet
- query_calibration — eYKON's own forecast record: Brier and log-loss per TRACK over a window. Three tracks never blend — house (eYKON's own published forecasts), machine (sensor observables) and creator. Each is returned separately with resolved, scored and unscored counts; "scored" is the real n. Unscored rows are excluded, never counted as zero. There is deliberately no combined figure.writeidempotentopen internet
- query_precursor_matches — Nearest precursor_library entries for the given theatre, by cosine similarity.writeidempotentopen internet
- run_chokepoint_scenario — Run a chokepoint closure scenario (same model as the Chokepoint Simulator). Returns a computed projection; nothing is persisted on this path. A MODEL, not an observation.writeidempotentopen internet
- run_sanctions_wargame — Run a sanctions propagation scenario.writeidempotentopen internet
- query_regime_shifts — Active regime shifts (30d-vs-60d test) with p-values and effect sizes.writeidempotentopen internet
- query_entities — Search the entities registry (vessels, operators, owners, flags, ports, refineries, mines).writeidempotentopen internet
- expand_actor_network — Walk the fleet kinship graph from a seed entity. Returns the nodes and edges within N hops.writeidempotentopen internet