Tool tree
gradeNot graded
get_viewAnswer
What the assessor is looking at RIGHT NOW: map bounding box, zoom, which imagery layer and capture date is displayed, how many buildings are in frame, and which building is selected. Call this first — every other tool is scoped to this view.
View tool JSON
{
"name": "get_view",
"kind": "answer",
"impl": "imperative",
"description": "What the assessor is looking at RIGHT NOW: map bounding box, zoom, which imagery layer and capture date is displayed, how many buildings are in frame, and which building is selected. Call this first — every other tool is scoped to this view.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}list_in_viewAnswer
List buildings inside the current viewport, newest-first by exposure. Returns a bounded page with a cursor plus summary statistics for the whole view. Filter by exposure band, damage grade, or whether a building has been graded yet. Use this to find candidates, then get_feature for detail.
View tool JSON
{
"name": "list_in_view",
"kind": "answer",
"impl": "imperative",
"description": "List buildings inside the current viewport, newest-first by exposure. Returns a bounded page with a cursor plus summary statistics for the whole view. Filter by exposure band, damage grade, or whether a building has been graded yet. Use this to find candidates, then get_feature for detail.",
"inputSchema": {
"type": "object",
"properties": {
"exposure": {
"type": "string",
"description": "Only this surge-exposure band: Severe, High, Moderate, Low or Unknown.",
"enum": [
"Severe",
"High",
"Moderate",
"Low",
"Unknown"
]
},
"status": {
"type": "string",
"description": "Filter by assessment status.",
"enum": [
"graded",
"ungraded",
"locked"
]
},
"limit": {
"type": "integer",
"description": "Max rows to return, 1-25.",
"minimum": 1,
"maximum": 25
},
"cursor": {
"type": "string",
"description": "Opaque cursor from a previous call's `next cursor` line."
}
},
"additionalProperties": false
}
}get_featureAnswer
Full detail for one building: use, footprint area, floors, ground elevation, modelled surge depth, estimated occupancy, distance to the nearest shelter and fire station, and any assessment or notes already recorded against it.
View tool JSON
{
"name": "get_feature",
"kind": "answer",
"impl": "imperative",
"description": "Full detail for one building: use, footprint area, floors, ground elevation, modelled surge depth, estimated occupancy, distance to the nearest shelter and fire station, and any assessment or notes already recorded against it.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Building id exactly as returned by list_in_view, e.g. b95954642."
}
},
"required": [
"id"
],
"additionalProperties": false
}
}get_assessmentsAnswer
Every damage assessment recorded so far in this session, with who wrote each one and whether the human has locked it. Use before proposing grades so you do not duplicate or contradict work the assessor has already done.
View tool JSON
{
"name": "get_assessments",
"kind": "answer",
"impl": "imperative",
"description": "Every damage assessment recorded so far in this session, with who wrote each one and whether the human has locked it. Use before proposing grades so you do not duplicate or contradict work the assessor has already done.",
"inputSchema": {
"type": "object",
"properties": {
"author": {
"type": "string",
"description": "Only records written by this author.",
"enum": [
"you",
"agent"
]
},
"limit": {
"type": "integer",
"description": "Max rows, 1-25.",
"minimum": 1,
"maximum": 25
},
"cursor": {
"type": "string",
"description": "Opaque cursor from a previous call."
}
},
"additionalProperties": false
}
}set_viewAction
Move the assessor's map. Give either a named place on Estero Island or an explicit bounding box. This changes what the human sees, so say why you are moving them. Named places: Estero Island, Times Square, north end, mid island, south end, Matanzas Pass Bridge, Big Carlos Pass, Santini Plaza.
View tool JSON
{
"name": "set_view",
"kind": "act",
"impl": "imperative",
"description": "Move the assessor's map. Give either a named place on Estero Island or an explicit bounding box. This changes what the human sees, so say why you are moving them. Named places: Estero Island, Times Square, north end, mid island, south end, Matanzas Pass Bridge, Big Carlos Pass, Santini Plaza.",
"inputSchema": {
"type": "object",
"properties": {
"place": {
"type": "string",
"description": "A named place on Estero Island, e.g. \"Matanzas Pass Bridge\"."
},
"bbox": {
"type": "array",
"description": "Explicit bounds as [west, south, east, north] in WGS84 degrees.",
"items": {
"type": "number"
},
"minItems": 4,
"maxItems": 4
}
},
"additionalProperties": false
}
}select_featureAction
Highlight one building on the assessor's map and open its detail panel. Use this to point at what you are talking about instead of describing coordinates.
View tool JSON
{
"name": "select_feature",
"kind": "act",
"impl": "imperative",
"description": "Highlight one building on the assessor's map and open its detail panel. Use this to point at what you are talking about instead of describing coordinates.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Building id from list_in_view."
}
},
"required": [
"id"
],
"additionalProperties": false
}
}propose_gradeAction
Record a proposed damage grade for one building, attributed to the agent. Refused if the assessor has locked that building — human judgement always wins. Always give a rationale that cites what you actually used (exposure band, elevation, occupancy, imagery).
View tool JSON
{
"name": "propose_grade",
"kind": "act",
"impl": "imperative",
"description": "Record a proposed damage grade for one building, attributed to the agent. Refused if the assessor has locked that building — human judgement always wins. Always give a rationale that cites what you actually used (exposure band, elevation, occupancy, imagery).",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Building id from list_in_view."
},
"grade": {
"type": "string",
"description": "One of: No visible damage, Affected, Minor damage, Major damage, Destroyed, Inaccessible.",
"enum": [
"No visible damage",
"Affected",
"Minor damage",
"Major damage",
"Destroyed",
"Inaccessible"
]
},
"rationale": {
"type": "string",
"description": "Why this grade, in one sentence. Cite the evidence you used.",
"maxLength": 300
}
},
"required": [
"id",
"grade",
"rationale"
],
"additionalProperties": false
}
}propose_batchAction
Apply one damage grade to several buildings at once. Atomic: if ANY building in the list is locked by the assessor, nothing is written and the locked ids are returned. Use for sweeps like grading every severe-exposure structure on one block.
View tool JSON
{
"name": "propose_batch",
"kind": "act",
"impl": "imperative",
"description": "Apply one damage grade to several buildings at once. Atomic: if ANY building in the list is locked by the assessor, nothing is written and the locked ids are returned. Use for sweeps like grading every severe-exposure structure on one block.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"description": "Building ids from list_in_view. Max 40.",
"items": {
"type": "string"
},
"maxItems": 40
},
"grade": {
"type": "string",
"description": "One of: No visible damage, Affected, Minor damage, Major damage, Destroyed, Inaccessible.",
"enum": [
"No visible damage",
"Affected",
"Minor damage",
"Major damage",
"Destroyed",
"Inaccessible"
]
},
"rationale": {
"type": "string",
"description": "Why this grade applies to the whole set, in one sentence.",
"maxLength": 300
}
},
"required": [
"ids",
"grade",
"rationale"
],
"additionalProperties": false
}
}add_noteAction
Attach a short note to one building under the agent's own identity. Notes are advisory context for the human assessor — observations, caveats, things worth checking on the ground. They are never presented as the assessor's own words.
View tool JSON
{
"name": "add_note",
"kind": "act",
"impl": "imperative",
"description": "Attach a short note to one building under the agent's own identity. Notes are advisory context for the human assessor — observations, caveats, things worth checking on the ground. They are never presented as the assessor's own words.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Building id from list_in_view."
},
"text": {
"type": "string",
"description": "The note. One or two sentences.",
"maxLength": 280
}
},
"required": [
"id",
"text"
],
"additionalProperties": false
}
}set_event_contextAction
Write what YOU know about this event into the page — storm track, surge behaviour, comparable historical events, anything the site itself has no way to know. This is the one tool where your own world knowledge, not the page's data, is the payload. Say where it came from.
View tool JSON
{
"name": "set_event_context",
"kind": "act",
"impl": "imperative",
"description": "Write what YOU know about this event into the page — storm track, surge behaviour, comparable historical events, anything the site itself has no way to know. This is the one tool where your own world knowledge, not the page's data, is the payload. Say where it came from.",
"inputSchema": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "What the assessor should know about this event. 2-5 sentences.",
"maxLength": 900
},
"attribution": {
"type": "string",
"description": "Where this came from, e.g. \"model knowledge, NHC TCR AL092022\".",
"maxLength": 120
}
},
"required": [
"summary",
"attribution"
],
"additionalProperties": false
}
}create_taskingSensitive Action
Build a field crew dispatch list from graded buildings and send it for the assessor's review. This does NOT dispatch anyone: it opens a review dialog and this call blocks until a human clicks approve or reject. Expect to wait. If the assessor rejects, respect it and do not retry with the same list.
View tool JSON
{
"name": "create_tasking",
"kind": "transact",
"impl": "imperative",
"description": "Build a field crew dispatch list from graded buildings and send it for the assessor's review. This does NOT dispatch anyone: it opens a review dialog and this call blocks until a human clicks approve or reject. Expect to wait. If the assessor rejects, respect it and do not retry with the same list.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"description": "Buildings the crew should visit. Max 25.",
"items": {
"type": "string"
},
"maxItems": 25
},
"crew": {
"type": "string",
"description": "Which crew or capability is needed, e.g. \"USAR team 2\", \"structural engineer\".",
"maxLength": 80
},
"priority": {
"type": "string",
"description": "Dispatch urgency.",
"enum": [
"Immediate",
"Same day",
"Routine"
]
}
},
"required": [
"ids",
"crew",
"priority"
],
"additionalProperties": false
}
}compare_imageryAction
Switch the assessor's map between NOAA's storm-day aerial imagery (30 Sep 2022, two days after Ian made landfall) and an undated Esri reference image showing the neighbourhood intact. Only available while both layers cover the visible area. The reference layer has no published capture date — do not describe it as a dated 'before' image.
View tool JSON
{
"name": "compare_imagery",
"kind": "act",
"impl": "imperative",
"description": "Switch the assessor's map between NOAA's storm-day aerial imagery (30 Sep 2022, two days after Ian made landfall) and an undated Esri reference image showing the neighbourhood intact. Only available while both layers cover the visible area. The reference layer has no published capture date — do not describe it as a dated 'before' image.",
"inputSchema": {
"type": "object",
"properties": {
"layer": {
"type": "string",
"description": "Which layer to show.",
"enum": [
"storm-day",
"reference"
]
}
},
"required": [
"layer"
],
"additionalProperties": false
}
}