mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 18:34:02 +00:00
Both stack parents (#837, #842) are on main, so the voice geometry branch now builds on main directly. Conflict resolutions keep main's behaviour and add the geometry work on top: osm_query gating on every provider, restored admin identity for Nominatim outlines, merged analyst follow-up memory, and the cancelled Globe View reset instruction ahead of the generic cancellation.
42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
import { createActionTools } from '../../../src/voice/actionSchemas.js';
|
|
import { ACTION_DESCRIPTIONS } from './toolDescriptions.js';
|
|
|
|
/** Every voice tool, as the Realtime session describes them. */
|
|
export const GEV_REALTIME_TOOLS = createActionTools(ACTION_DESCRIPTIONS);
|
|
|
|
/**
|
|
* The session's tools: the app actions, then additional function tools
|
|
* whose names no action already uses.
|
|
*/
|
|
export function realtimeSessionTools(additional = []) {
|
|
const names = new Set(GEV_REALTIME_TOOLS.map((tool) => tool.name));
|
|
return [
|
|
...GEV_REALTIME_TOOLS,
|
|
...additional.filter((tool) => !names.has(tool.name)),
|
|
];
|
|
}
|
|
|
|
/** Tools that need an operator-configured Overpass (OVERPASS_UPSTREAMS). */
|
|
export const OVERPASS_ONLY_TOOLS = Object.freeze(['osm_query']);
|
|
|
|
/**
|
|
* The tools one session is offered. Bulk OpenStreetMap place search runs
|
|
* only on an operator's Overpass, so without one `osm_query` is left out
|
|
* rather than offered and refused.
|
|
* @param {Array<{name: string}>} tools
|
|
* @param {{overpass?: boolean}} [options]
|
|
*/
|
|
export function offeredTools(tools, { overpass = false } = {}) {
|
|
return overpass
|
|
? tools
|
|
: tools.filter((tool) => !OVERPASS_ONLY_TOOLS.includes(tool.name));
|
|
}
|
|
|
|
/**
|
|
* The app actions one session is offered.
|
|
* @param {{overpass?: boolean}} [options]
|
|
*/
|
|
export function realtimeTools({ overpass = false } = {}) {
|
|
return offeredTools(GEV_REALTIME_TOOLS, { overpass });
|
|
}
|