Say the -45° tilt default in the pitchDeg description again

The trim that fitted the tilt wording under the Realtime prompt ceiling dropped the -45° default from pitchDeg, so the model no longer read why a bare tilt goes oblique. pitchDeg reads 'Absolute; -45 default, -89 top-down.' again, and the direction description becomes 'Pan/rotate/tilt steps; orbit/rotate_globe default right.' to pay for it: the Overpass prompt measures 55,499, 1 under the 55,500 ceiling. The schema pin and the measured-size note follow.
This commit is contained in:
Sameh Khamis committed 2026-11-05 16:14:27 -08:00
1 parent 6479167b50
commit 198c2faf4f
4 files changed
+13 -11

No files matched your search

+2 -2
View File
@@ -523,7 +523,7 @@ export const ACTION_DESCRIPTIONS = {
properties: { properties: {
direction: { direction: {
description: description:
'Needed for pan/rotate/tilt steps; orbit/rotate_globe default right.', 'Pan/rotate/tilt steps; orbit/rotate_globe default right.',
$position: 2, $position: 2,
}, },
mode: { mode: {
@@ -532,7 +532,7 @@ export const ACTION_DESCRIPTIONS = {
$position: 2, $position: 2,
}, },
pitchDeg: { pitchDeg: {
description: 'Absolute; -89 top-down.', description: 'Absolute; -45 default, -89 top-down.',
$position: 1, $position: 1,
}, },
}, },
+5 -3
View File
@@ -232,14 +232,16 @@ test('no unchanged Realtime tool definition drifts silently', () => {
camera.description, camera.description,
'Direct the camera like a drone operator: orbit the current view target, pan, tilt, or rotate — one bounded nudge (mode=once) or continuous motion until stopped (mode=continuous). Continuous motion also stops on any manual camera input or when a navigation tool runs. Say the RESULTING state when confirming ("Orbiting slowly"). Globe rotation (rotate_globe) spins Earth right continuously by default; explicit direction, mode and speed take precedence. It checks fit and may refuse.', 'Direct the camera like a drone operator: orbit the current view target, pan, tilt, or rotate — one bounded nudge (mode=once) or continuous motion until stopped (mode=continuous). Continuous motion also stops on any manual camera input or when a navigation tool runs. Say the RESULTING state when confirming ("Orbiting slowly"). Globe rotation (rotate_globe) spins Earth right continuously by default; explicit direction, mode and speed take precedence. It checks fit and may refuse.',
); );
// Tilt to an angle adds an absolute pitchDeg and says tilt steps need a // Tilt to an angle adds an absolute pitchDeg with its -45° default, and
// direction; check them, then restore the legacy fields for the pin. // names tilt steps among the direction's uses; check them, then restore
// the legacy fields for the pin.
assert.equal( assert.equal(
camera.parameters.properties.direction.description, camera.parameters.properties.direction.description,
'Needed for pan/rotate/tilt steps; orbit/rotate_globe default right.', 'Pan/rotate/tilt steps; orbit/rotate_globe default right.',
); );
assert.equal(camera.parameters.properties.pitchDeg.type, 'number'); assert.equal(camera.parameters.properties.pitchDeg.type, 'number');
assert.match(camera.parameters.properties.pitchDeg.description, /^Absolute;/); assert.match(camera.parameters.properties.pitchDeg.description, /^Absolute;/);
assert.match(camera.parameters.properties.pitchDeg.description, /-45 default/);
delete camera.parameters.properties.pitchDeg; delete camera.parameters.properties.pitchDeg;
assert.equal(camera.parameters.properties.mode.description, 'once = bounded eased nudge; continuous = until stop/manual input. rotate_globe defaults continuous; other motions default once.'); assert.equal(camera.parameters.properties.mode.description, 'once = bounded eased nudge; continuous = until stop/manual input. rotate_globe defaults continuous; other motions default once.');
camera.parameters.properties.mode.description = 'once = bounded eased nudge (default); continuous = until stop/manual input.'; camera.parameters.properties.mode.description = 'once = bounded eased nudge (default); continuous = until stop/manual input.';
+2 -2
View File
@@ -57,8 +57,8 @@ test('the complete Realtime tool payload pins the manifest-generated layer relea
// tightened area tool wording follow review. // tightened area tool wording follow review.
// control_cockpit states the own-layer entry rule (Contacts not required). // control_cockpit states the own-layer entry rule (Contacts not required).
// move_camera tilt takes an optional pitchDeg angle, described as // move_camera tilt takes an optional pitchDeg angle, described as
// absolute, with steps sent as a direction. // absolute with its -45 default, with steps sent as a direction.
'17e54c1a04054edf48f2eddcf88c60ac66ec7c885fb48596b778bfee0be8a544', '6a0d154e68beb787c4e20f12d29a5c86577dc343f3e71d8b5651998ea45d8c3c',
); );
}); });
+4 -4
View File
@@ -350,10 +350,10 @@ test('deixis prompt lint: one short rule, and every sentinel it names exists in
// the analyst area scopes) raised the ceiling to 55,500; tightening the // the analyst area scopes) raised the ceiling to 55,500; tightening the
// AREAS rule and the area tool descriptions left it at 55,103 as measured // AREAS rule and the area tool descriptions left it at 55,103 as measured
// below (every tool, osm_query included); main's Sea Marks and Ski Pistes // below (every tool, osm_query included); main's Sea Marks and Ski Pistes
// layers bring it to 55,210, and the tilt pitchDeg argument with main's // layers bring it to 55,210, and the tilt pitchDeg argument (with its -45
// cockpit entry rule to 55,337. integrationContract's Overpass prompt is // default) and main's cockpit entry rule to 55,339. integrationContract's
// the tightest, at 55,497 (3 under). A new tool or rule has to fit under // Overpass prompt is the tightest, at 55,499 (1 under). A new tool or rule
// this ceiling. // has to fit under this ceiling.
const size = instructions.length + JSON.stringify(GEV_REALTIME_TOOLS).length; const size = instructions.length + JSON.stringify(GEV_REALTIME_TOOLS).length;
assert.ok(size <= 55_500, `prompt size ${size}`); assert.ok(size <= 55_500, `prompt size ${size}`);
}); });