Tool tree
get_workspaceAnswer
Read the active project and currently active scenario only: objective, constraints, decision status, resume note, and analysis summary. Call list_scenarios for all branches.
View tool JSON
{
"name": "get_workspace",
"kind": "answer",
"impl": "imperative",
"description": "Read the active project and currently active scenario only: objective, constraints, decision status, resume note, and analysis summary. Call list_scenarios for all branches.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
}
},
"additionalProperties": false
},
"page": "/"
}get_analysis_planAnswer
Return the structured analysis plan steps before or after running analysis.
View tool JSON
{
"name": "get_analysis_plan",
"kind": "answer",
"impl": "imperative",
"description": "Return the structured analysis plan steps before or after running analysis.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
}
},
"additionalProperties": false
},
"page": "/"
}list_candidatesAnswer
List ranked analysis candidates (top N by default) with total count and score spread — does not return the full candidate set. For housing capacity and detailed metrics per site, call inspect_candidate.
View tool JSON
{
"name": "list_candidates",
"kind": "answer",
"impl": "imperative",
"description": "List ranked analysis candidates (top N by default) with total count and score spread — does not return the full candidate set. For housing capacity and detailed metrics per site, call inspect_candidate.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"limit": {
"type": "number",
"description": "Max candidates to return (default 10, max 100)"
},
"offset": {
"type": "number",
"description": "Skip this many ranked candidates before returning the page (default 0)"
}
},
"additionalProperties": false
},
"page": "/"
}inspect_candidateAnswer
Inspect one candidate: metrics, score breakdown, datasets, assumptions, limitations.
View tool JSON
{
"name": "inspect_candidate",
"kind": "answer",
"impl": "imperative",
"description": "Inspect one candidate: metrics, score breakdown, datasets, assumptions, limitations.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"candidateId": {
"type": "string",
"description": "Ranked candidate id from list_candidates or inspect_candidate"
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
}
},
"required": [
"candidateId"
],
"additionalProperties": false
},
"page": "/"
}list_shortlistAnswer
List planner-pinned candidates on the scenario shortlist with pin reasons and notes.
View tool JSON
{
"name": "list_shortlist",
"kind": "answer",
"impl": "imperative",
"description": "List planner-pinned candidates on the scenario shortlist with pin reasons and notes.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
}
},
"additionalProperties": false
},
"page": "/"
}add_to_shortlistAction
Pin a ranked candidate to the scenario shortlist for decision review.
View tool JSON
{
"name": "add_to_shortlist",
"kind": "act",
"impl": "imperative",
"description": "Pin a ranked candidate to the scenario shortlist for decision review.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"candidateId": {
"type": "string",
"description": "Ranked candidate id from list_candidates or inspect_candidate"
},
"reason": {
"type": "string",
"description": "Why this site was pinned"
},
"note": {
"type": "string",
"description": "Optional one-line planner note"
}
},
"required": [
"candidateId"
],
"additionalProperties": false
},
"page": "/"
}remove_from_shortlistAction
Remove a candidate from the scenario shortlist.
View tool JSON
{
"name": "remove_from_shortlist",
"kind": "act",
"impl": "imperative",
"description": "Remove a candidate from the scenario shortlist.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"candidateId": {
"type": "string",
"description": "Ranked candidate id from list_candidates or inspect_candidate"
}
},
"required": [
"candidateId"
],
"additionalProperties": false
},
"page": "/"
}list_scenariosAnswer
List all scenario branches for a project: id, name, active flag, whether results exist, stale flag, and decision status.
View tool JSON
{
"name": "list_scenarios",
"kind": "answer",
"impl": "imperative",
"description": "List all scenario branches for a project: id, name, active flag, whether results exist, stale flag, and decision status.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
}
},
"additionalProperties": false
},
"page": "/"
}list_datasetsAnswer
List datasets with version, freshness, coverage, and limitations.
View tool JSON
{
"name": "list_datasets",
"kind": "answer",
"impl": "imperative",
"description": "List datasets with version, freshness, coverage, and limitations.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}get_planning_constraintsAnswer
One-shot read of planning constraints for the active scenario: objective, enabled constraints, dataset limitations, flood/transit thresholds, stale flag, and housing target vs eligible capacity.
View tool JSON
{
"name": "get_planning_constraints",
"kind": "answer",
"impl": "imperative",
"description": "One-shot read of planning constraints for the active scenario: objective, enabled constraints, dataset limitations, flood/transit thresholds, stale flag, and housing target vs eligible capacity.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
}
},
"additionalProperties": false
},
"page": "/"
}list_decisionsAnswer
Recent planner decisions and scenario preferences (approvals, rejections, candidate rejections, prefer_scenario). Use for audit — get_workspace only shows decisionStatus on the active scenario.
View tool JSON
{
"name": "list_decisions",
"kind": "answer",
"impl": "imperative",
"description": "Recent planner decisions and scenario preferences (approvals, rejections, candidate rejections, prefer_scenario). Use for audit — get_workspace only shows decisionStatus on the active scenario.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Optional — filter to one scenario; omit for all branches"
},
"limit": {
"type": "number",
"description": "Max decisions to return (default 20, max 100)"
}
},
"additionalProperties": false
},
"page": "/"
}compare_scenariosAction
Compare scenarios using consistent calculated metrics (capacity, transit, scores). Requires two scenario IDs from list_scenarios with hasResults: true.
View tool JSON
{
"name": "compare_scenarios",
"kind": "act",
"impl": "imperative",
"description": "Compare scenarios using consistent calculated metrics (capacity, transit, scores). Requires two scenario IDs from list_scenarios with hasResults: true.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "At least two scenario ids"
}
},
"required": [
"scenarioIds"
],
"additionalProperties": false
},
"page": "/"
}verify_operationAction
Verify an approved human-gated operation by SHA-256 receipt. Returns verification status.
View tool JSON
{
"name": "verify_operation",
"kind": "act",
"impl": "imperative",
"description": "Verify an approved human-gated operation by SHA-256 receipt. Returns verification status.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"proposalId": {
"type": "string",
"description": "Optional; defaults to latest approved"
}
},
"additionalProperties": false
},
"page": "/"
}start_planning_projectAction
Create a planning project, navigate the browser to its workspace URL, and return projectId plus workspaceUrl. Geography data is Mission/SoMa, San Francisco.
View tool JSON
{
"name": "start_planning_project",
"kind": "act",
"impl": "imperative",
"description": "Create a planning project, navigate the browser to its workspace URL, and return projectId plus workspaceUrl. Geography data is Mission/SoMa, San Francisco.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Project name"
},
"objectiveText": {
"type": "string",
"description": "Natural-language planning question"
},
"geographyLabel": {
"type": "string",
"description": "Optional geography label"
}
},
"required": [
"name",
"objectiveText"
],
"additionalProperties": false
},
"page": "/"
}open_projectAction
Open an existing planning project in the browser (navigates to its workspace URL). Pass projectId or name (case-insensitive; unique partial match allowed).
View tool JSON
{
"name": "open_project",
"kind": "act",
"impl": "imperative",
"description": "Open an existing planning project in the browser (navigates to its workspace URL). Pass projectId or name (case-insensitive; unique partial match allowed).",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id from list_projects"
},
"name": {
"type": "string",
"description": "Project display name when projectId is unknown"
}
},
"additionalProperties": false
},
"page": "/"
}set_planning_objectiveAction
Update the active objective from natural language; regenerates the analysis plan.
View tool JSON
{
"name": "set_planning_objective",
"kind": "act",
"impl": "imperative",
"description": "Update the active objective from natural language; regenerates the analysis plan.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"objectiveText": {
"type": "string",
"description": "Natural-language planning objective replacing the active scenario objective"
},
"confirmConstraintChange": {
"type": "boolean",
"description": "Set true after planner review when the new objective would drop enabled flood/transit constraints"
}
},
"required": [
"objectiveText"
],
"additionalProperties": false
},
"page": "/"
}set_transit_thresholdAction
Set transit proximity threshold in meters (marks results stale).
View tool JSON
{
"name": "set_transit_threshold",
"kind": "act",
"impl": "imperative",
"description": "Set transit proximity threshold in meters (marks results stale).",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"meters": {
"type": "number",
"description": "Distance threshold in meters",
"minimum": 1
}
},
"required": [
"meters"
],
"additionalProperties": false
},
"page": "/"
}set_priority_weightsAction
Set ranking weights (e.g. transit, capacity, flood_resilience). Values are normalized.
View tool JSON
{
"name": "set_priority_weights",
"kind": "act",
"impl": "imperative",
"description": "Set ranking weights (e.g. transit, capacity, flood_resilience). Values are normalized.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"weights": {
"type": "object",
"description": "Map of criterion key → weight",
"additionalProperties": {
"type": "number"
}
}
},
"required": [
"weights"
],
"additionalProperties": false
},
"page": "/"
}run_analysisAction
Run spatial analysis for a scenario. Returns running — poll list_candidates or get_workspace; do not re-run on stale Client Demo if results exist.
View tool JSON
{
"name": "run_analysis",
"kind": "act",
"impl": "imperative",
"description": "Run spatial analysis for a scenario. Returns running — poll list_candidates or get_workspace; do not re-run on stale Client Demo if results exist.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
}
},
"additionalProperties": false
},
"page": "/"
}create_scenario_branchAction
Duplicate a scenario so edits do not mutate the parent. Call set_active_scenario to work on the new branch.
View tool JSON
{
"name": "create_scenario_branch",
"kind": "act",
"impl": "imperative",
"description": "Duplicate a scenario so edits do not mutate the parent. Call set_active_scenario to work on the new branch.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"name": {
"type": "string",
"description": "Display name for the new scenario branch (e.g. \"Transit 900m variant\")."
},
"fromScenarioId": {
"type": "string",
"description": "Source scenario to duplicate; defaults to active scenario"
}
},
"required": [
"name"
],
"additionalProperties": false
},
"page": "/"
}set_active_scenarioAction
Switch the workspace to a scenario branch (same as the header scenario picker). Use before run_analysis or list_candidates on a non-active branch.
View tool JSON
{
"name": "set_active_scenario",
"kind": "act",
"impl": "imperative",
"description": "Switch the workspace to a scenario branch (same as the header scenario picker). Use before run_analysis or list_candidates on a non-active branch.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
}
},
"required": [
"scenarioId"
],
"additionalProperties": false
},
"page": "/"
}open_workspace_tabAction
Switch the workspace UI to a tab. Requires the project workspace to be open in the browser.
View tool JSON
{
"name": "open_workspace_tab",
"kind": "act",
"impl": "imperative",
"description": "Switch the workspace UI to a tab. Requires the project workspace to be open in the browser.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"tab": {
"type": "string",
"description": "Tab to open: workspace (map), results, evidence, compare, decision, activity, or report",
"enum": [
"workspace",
"results",
"evidence",
"compare",
"decision",
"activity",
"report"
]
}
},
"required": [
"tab"
],
"additionalProperties": false
},
"page": "/"
}select_candidateAction
Select a candidate; syncs map highlight and detail panels.
View tool JSON
{
"name": "select_candidate",
"kind": "act",
"impl": "imperative",
"description": "Select a candidate; syncs map highlight and detail panels.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"candidateId": {
"type": "string",
"description": "Ranked candidate id from list_candidates or inspect_candidate"
}
},
"required": [
"candidateId"
],
"additionalProperties": false
},
"page": "/"
}set_map_viewAction
Pan/zoom the workspace map viewport to a lng/lat center (optional zoom 1–20). Live map follows immediately.
View tool JSON
{
"name": "set_map_view",
"kind": "act",
"impl": "imperative",
"description": "Pan/zoom the workspace map viewport to a lng/lat center (optional zoom 1–20). Live map follows immediately.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"center": {
"type": "array",
"description": "[lng, lat] — exactly two numbers",
"items": {
"type": "number"
}
},
"zoom": {
"type": "number",
"description": "Optional zoom level (1–20)"
}
},
"required": [
"center"
],
"additionalProperties": false
},
"page": "/"
}exclude_featuresAction
Exclude selected map parcels by feature id (same as map parcel Exclude toolbar); marks results stale.
View tool JSON
{
"name": "exclude_features",
"kind": "act",
"impl": "imperative",
"description": "Exclude selected map parcels by feature id (same as map parcel Exclude toolbar); marks results stale.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"featureIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Parcel feature ids from map selection"
},
"label": {
"type": "string",
"description": "Constraint label shown in activity"
}
},
"required": [
"featureIds"
],
"additionalProperties": false
},
"page": "/"
}exclude_map_areaAction
Add a human/agent geographic exclusion polygon; marks results stale.
View tool JSON
{
"name": "exclude_map_area",
"kind": "act",
"impl": "imperative",
"description": "Add a human/agent geographic exclusion polygon; marks results stale.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"label": {
"type": "string",
"description": "Human-readable label for the exclusion polygon shown in constraints"
},
"coordinates": {
"type": "array",
"description": "Polygon ring as [lng,lat] pairs (min 3)",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
}
},
"required": [
"label",
"coordinates"
],
"additionalProperties": false
},
"page": "/"
}remove_map_areaAction
Remove a geographic exclusion/inclusion polygon by id; marks results stale.
View tool JSON
{
"name": "remove_map_area",
"kind": "act",
"impl": "imperative",
"description": "Remove a geographic exclusion/inclusion polygon by id; marks results stale.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"selectionId": {
"type": "string",
"description": "Geographic selection id returned by exclude_map_area"
}
},
"required": [
"selectionId"
],
"additionalProperties": false
},
"page": "/"
}update_map_areaAction
Update label or geometry of an existing geographic selection polygon.
View tool JSON
{
"name": "update_map_area",
"kind": "act",
"impl": "imperative",
"description": "Update label or geometry of an existing geographic selection polygon.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"selectionId": {
"type": "string",
"description": "Geographic selection id to update"
},
"label": {
"type": "string",
"description": "Updated label for the geographic selection"
},
"coordinates": {
"type": "array",
"description": "Polygon ring as [lng,lat] pairs (min 3)",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
}
},
"required": [
"selectionId"
],
"additionalProperties": false
},
"page": "/"
}stage_proposalAction
Stage a visible ghost proposal for human review. Does not apply until approved. Revision-bound.
View tool JSON
{
"name": "stage_proposal",
"kind": "act",
"impl": "imperative",
"description": "Stage a visible ghost proposal for human review. Does not apply until approved. Revision-bound.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"title": {
"type": "string",
"description": "Short proposal title shown in the workspace review banner"
},
"description": {
"type": "string",
"description": "Planner-facing summary of what the proposal would change"
},
"action": {
"type": "string",
"description": "Domain action: update_weights, update_constraints, set_transit_threshold, approve_scenario"
},
"payload": {
"type": "object",
"description": "Action-specific parameters"
}
},
"required": [
"title",
"description",
"action",
"payload"
],
"additionalProperties": false
},
"page": "/"
}reject_candidateAction
Record a planner rejection of a candidate. Without confirmed:true returns pending_planner for on-screen review.
View tool JSON
{
"name": "reject_candidate",
"kind": "act",
"impl": "imperative",
"description": "Record a planner rejection of a candidate. Without confirmed:true returns pending_planner for on-screen review.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"candidateId": {
"type": "string",
"description": "Ranked candidate id from list_candidates or inspect_candidate"
},
"reason": {
"type": "string",
"description": "Optional planner rationale recorded with the rejection"
},
"confirmed": {
"type": "boolean",
"description": "Set true after the planner confirms in the workspace UI"
}
},
"required": [
"candidateId"
],
"additionalProperties": false
},
"page": "/"
}prefer_scenarioAction
Select the planner's preferred scenario. Without confirmed:true returns pending_planner for on-screen review.
View tool JSON
{
"name": "prefer_scenario",
"kind": "act",
"impl": "imperative",
"description": "Select the planner's preferred scenario. Without confirmed:true returns pending_planner for on-screen review.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"reason": {
"type": "string",
"description": "Optional planner rationale for preferring this scenario"
},
"confirmed": {
"type": "boolean",
"description": "Set true after the planner confirms in the workspace UI"
}
},
"additionalProperties": false
},
"page": "/"
}approve_scenarioAction
Use when the user says 'record decision' or 'approve scenario'; returns pending_planner until planner clicks Approve. Without confirmed:true the decision is not saved until the planner confirms in the workspace banner.
View tool JSON
{
"name": "approve_scenario",
"kind": "act",
"impl": "imperative",
"description": "Use when the user says 'record decision' or 'approve scenario'; returns pending_planner until planner clicks Approve. Without confirmed:true the decision is not saved until the planner confirms in the workspace banner.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"reason": {
"type": "string",
"description": "Optional decision rationale"
},
"confirmed": {
"type": "boolean",
"description": "Set true after the planner confirms in the workspace UI"
}
},
"additionalProperties": false
},
"page": "/"
}approve_proposalAction
Apply a staged proposal after human confirmation. Without confirmed:true returns pending_planner with proposalId.
View tool JSON
{
"name": "approve_proposal",
"kind": "act",
"impl": "imperative",
"description": "Apply a staged proposal after human confirmation. Without confirmed:true returns pending_planner with proposalId.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"proposalId": {
"type": "string",
"description": "Staged proposal id from stage_proposal awaiting planner approval"
},
"confirmed": {
"type": "boolean",
"description": "Set true after the planner clicks Approve proposal in the UI"
}
},
"required": [
"proposalId"
],
"additionalProperties": false
},
"page": "/"
}generate_reportAction
Generate a planning report for one or more scenarios. Without confirmed:true returns pending_planner for on-screen review.
View tool JSON
{
"name": "generate_report",
"kind": "act",
"impl": "imperative",
"description": "Generate a planning report for one or more scenarios. Without confirmed:true returns pending_planner for on-screen review.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Scenario ids to include; defaults to active scenario"
},
"title": {
"type": "string",
"description": "Optional report title; defaults to a scenario-based name"
}
},
"additionalProperties": false
},
"page": "/"
}list_projectsAnswer
List saved planning projects (id, name, geography). Use open_project to navigate by id or name.
View tool JSON
{
"name": "list_projects",
"kind": "answer",
"impl": "imperative",
"description": "List saved planning projects (id, name, geography). Use open_project to navigate by id or name.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}load_projectAction
Read-only snapshot of a project workspace (alias for get_workspace). Does not navigate — use open_project or visit workspaceUrl.
View tool JSON
{
"name": "load_project",
"kind": "act",
"impl": "imperative",
"description": "Read-only snapshot of a project workspace (alias for get_workspace). Does not navigate — use open_project or visit workspaceUrl.",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id"
}
},
"required": [
"projectId"
],
"additionalProperties": false
},
"page": "/"
}exclude_from_selectionAction
Exclude parcel features from analysis (alias for exclude_features).
View tool JSON
{
"name": "exclude_from_selection",
"kind": "act",
"impl": "imperative",
"description": "Exclude parcel features from analysis (alias for exclude_features).",
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"description": "Planning project id. Optional when a workspace tab is open — defaults to the active project."
},
"scenarioId": {
"type": "string",
"description": "Scenario id. Optional when a workspace tab is open — defaults to the active scenario."
},
"featureIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Parcel feature ids from map selection"
},
"label": {
"type": "string",
"description": "Constraint label shown in activity"
}
},
"required": [
"featureIds"
],
"additionalProperties": false
},
"page": "/"
}