Merge feat/voice-geometry onto main

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.
This commit is contained in:
Manjunath committed 2026-11-03 14:33:34 +05:30
commit ecaddd838b
102 files changed
+12925 -1006

No files matched your search

+91 -1
View File
@@ -1,4 +1,8 @@
import { HUD_LAYOUTS } from '../hudLayoutPolicy.js';
import {
AREA_CANDIDATE_ID_PATTERN,
MAX_AREA_CANDIDATE_ID_LENGTH,
} from './areaCandidateContract.js';
// Canonical action arguments. Descriptive wording is supplied separately.
import {
@@ -788,11 +792,28 @@ const schemas = [
properties: {
kind: {
type: 'string',
enum: ['view', 'region', 'radius', 'anywhere', 'pointer'],
enum: [
'view',
'region',
'radius',
'anywhere',
'pointer',
'area',
'drawn',
'annotation',
],
},
name: {
type: 'string',
},
areaId: {
type: 'string',
maxLength: 120,
},
id: {
type: 'string',
maxLength: 60,
},
km: {
type: 'number',
},
@@ -849,6 +870,75 @@ const schemas = [
},
},
},
{
name: 'resolve_area',
parameters: {
type: 'object',
additionalProperties: false,
properties: {
query: { type: 'string', minLength: 1, maxLength: 200 },
level: {
type: 'string',
enum: [
'country',
'admin1',
'admin2',
'city',
'district',
'natural',
'site',
],
},
within: { type: 'string', maxLength: 120 },
candidateId: {
type: 'string',
minLength: 1,
maxLength: MAX_AREA_CANDIDATE_ID_LENGTH,
pattern: AREA_CANDIDATE_ID_PATTERN,
},
draw: { type: 'boolean' },
around: { type: 'boolean' },
radiusM: { type: 'number', minimum: 50, maximum: 20000 },
flyTo: { type: 'boolean' },
},
},
},
{
name: 'find_imagery',
parameters: {
type: 'object',
additionalProperties: false,
properties: {
areaId: { type: 'string', maxLength: 120 },
area: { type: 'string', enum: ['view', 'pointer'] },
dateRange: {
type: 'object',
additionalProperties: false,
properties: {
from: { type: 'string', maxLength: 30 },
to: { type: 'string', maxLength: 30 },
days: { type: 'number', minimum: 1, maximum: 30 },
},
},
maxCloudPct: { type: 'number', minimum: 0, maximum: 100 },
source: { type: 'string', enum: ['hls', 'viirs', 'any'] },
},
},
},
{
name: 'osm_query',
parameters: {
type: 'object',
additionalProperties: false,
required: ['what'],
properties: {
what: { type: 'string', minLength: 1, maxLength: 80 },
areaId: { type: 'string', maxLength: 120 },
countOnly: { type: 'boolean' },
limit: { type: 'number', minimum: 1, maximum: 1000 },
},
},
},
{
name: 'next_iss_pass',
parameters: {