Skip to content

Result format

Every tool returns the same typed result. A renderer ignores what it does not know, and a typo in a tool fails at the tool, because every model forbids unknown fields. Generated from server/threshold/tools/types.py.

Field Type Notes
tool string
scope ScanScope or AddressScope or ScansScope or PropertyScope or GeoScope
verdict Verdict
metrics list of Metric
checks list of Check
findings list of Finding
overlays list of LensOverlay or RuleOverlay or PinsOverlay or RouteOverlay or WaterOverlay or BoxOverlay
assumptions list of Assumption
actions list of Action
Field Type Notes
status pass or warn or fail or unknown
text string
Field Type Notes
id string
label string
value number or null
unit string
source Source
Field Type Notes
id string
rule string
measured number or null
threshold number or null
unit string
status pass or warn or fail or unknown
standard string or null
findings list of string
kind limit or claim claim: threshold is what a record or a listing says, not a limit to meet
Field Type Notes
id string
title string
status pass or warn or fail or unknown
detail string
anchor PointAnchor or RoomAnchor or OpeningAnchor or WallAnchor or PanoAnchor or GeoAnchor or null
source Source
media list of Media
Field Type Notes
layer matterport or vexcel or costar or drone or model or phone
method geometry or vision or lookup or simulation or sensor or manual
confidence high or medium or low
note string or null
Field Type Notes
kind pano or ortho or drone or phone
ref string
box array or null
Field Type Notes
id string For an editable assumption, the preference key (x-pref) that an edit sets
label string
value number or string or boolean or null
unit string or null
editable boolean
Field Type Notes
id string
label string
tool string
inputs object

One overlay draws in every view that can show it: the 3D building, the plan, a panorama or the map.

Field Type Notes
kind string
values object room id -> value
ramp sequential or status
legend Legend
Field Type Notes
kind string
select SelectRooms or SelectRoomLabels or SelectOpenings or SelectWalls
style solid or dim or hide or highlight or pass or warn or fail
Field Type Notes
kind string
pins list of Pin
Field Type Notes
kind string
floor string
points list of array
chokes list of Choke
label string
Field Type Notes
kind string
level_m number
datum string
Field Type Notes
kind string
center list of
size list of
yaw_deg number
label string
status pass or warn or fail or unknown
model string or null Model class the scene draws stretched to exactly this box, such as vehicle/pickup or furniture/sofa; none draws the box alone

One per tool. It feeds the agent, the web tool dock, the MCP server and the CLI.

Field Type Notes
id string
title string
summary string For the person: tooltip and ‘why this tool’
model_description string For the model: when to use it and what it returns
icon string or null
personas list of string
requires list of Requirement
inputs object JSON Schema with x-ask, x-pref, x-source, x-unit
blocks list of string
overlays list of string
annotations Annotations
examples list of string
status ready or planned
table list of TableColumn Columns of the run’s own RankedTable: each row is a key k with metrics k/<column.metric>; the first cell’s label names the row
Field Type Notes
layer string e.g. matterport.rooms, matterport.openings, vexcel.ortho, costar.property
need required or optional
fallback string or null
Field Type Notes
read_only boolean
cost fast or slow

Where a tool runs when it does not need a scan: a scan id, a CoStar property id (all its scans), an address, or a point. Give one; ctx.site(place) resolves it to coordinates, address, property and scans.

Field Type Notes
scan string or null
property_id integer or null
address string or null
geo array or null [lon, lat]