Tool tree
gradeNot graded
get_garden_stateAnswer
Get the full live state of the garden: every plot, every plant with its id, type, growth stage, health, water level, and whether it is ready to harvest, plus the harvest basket, robot crew, visible plan preview, and active or latest agent job. Call this first to orient or resynchronize yourself after the person interacts with the app.
View tool JSON
{
"name": "get_garden_state",
"kind": "answer",
"impl": "imperative",
"description": "Get the full live state of the garden: every plot, every plant with its id, type, growth stage, health, water level, and whether it is ready to harvest, plus the harvest basket, robot crew, visible plan preview, and active or latest agent job. Call this first to orient or resynchronize yourself after the person interacts with the app.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}list_plant_typesAnswer
List the seed catalog: every plant type the garden supports, with its kind (vegetable/flower/fruit), how long it takes to grow, how thirsty it is, and its harvest yield.
View tool JSON
{
"name": "list_plant_types",
"kind": "answer",
"impl": "imperative",
"description": "List the seed catalog: every plant type the garden supports, with its kind (vegetable/flower/fruit), how long it takes to grow, how thirsty it is, and its harvest yield.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_care_recommendationsAnswer
Get a prioritized list of what needs attention in the garden right now: thirsty plants to water, plants ready to harvest, withered plants to clear, and empty plots to sow. Use this to plan your next actions.
View tool JSON
{
"name": "get_care_recommendations",
"kind": "answer",
"impl": "imperative",
"description": "Get a prioritized list of what needs attention in the garden right now: thirsty plants to water, plants ready to harvest, withered plants to clear, and empty plots to sow. Use this to plan your next actions.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}preview_garden_planAction
Stage a proposed planting layout as glowing ghost plants in the live garden without planting anything. Use this for collaborative design: explain the plan, let the person review it, and only call run_garden_plan after they approve. Calling this again replaces the previous preview.
View tool JSON
{
"name": "preview_garden_plan",
"kind": "act",
"impl": "imperative",
"description": "Stage a proposed planting layout as glowing ghost plants in the live garden without planting anything. Use this for collaborative design: explain the plan, let the person review it, and only call run_garden_plan after they approve. Calling this again replaces the previous preview.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "A short human-friendly name for the layout."
},
"rationale": {
"type": "string",
"minLength": 1,
"maxLength": 280,
"description": "A concise explanation of the design choices."
},
"assignments": {
"type": "array",
"minItems": 1,
"maxItems": 16,
"description": "The empty plots and plant types to show in the preview.",
"items": {
"type": "object",
"properties": {
"plotIndex": {
"type": "integer",
"minimum": 0,
"maximum": 15
},
"plantType": {
"type": "string",
"enum": [
"lettuce",
"carrot",
"tomato",
"lavender",
"sunflower",
"pumpkin"
]
}
},
"required": [
"plotIndex",
"plantType"
],
"additionalProperties": false
}
},
"aftercare": {
"type": "string",
"enum": [
"none",
"one_accelerated_day"
],
"description": "Set to \"one_accelerated_day\" when the person asks you to keep the approved planting healthy afterward. The browser will own that 60-second demo-day care session, so it continues after your turn ends."
},
"helpers": {
"type": "integer",
"minimum": 0,
"maximum": 3,
"description": "How many helpers should work this plan. Omit to keep the standing crew. A number only adds helpers, it never recalls them."
}
},
"required": [
"name",
"rationale",
"assignments"
],
"additionalProperties": false
}
}run_garden_planAction
Execute a planting preview after the person approves it, or reconcile with the existing job if they already approved it in the app. This is idempotent for a planId and never starts the same plan twice. Background aftercare continues even after your turn ends. Poll get_agent_job for progress.
View tool JSON
{
"name": "run_garden_plan",
"kind": "act",
"impl": "imperative",
"description": "Execute a planting preview after the person approves it, or reconcile with the existing job if they already approved it in the app. This is idempotent for a planId and never starts the same plan twice. Background aftercare continues even after your turn ends. Poll get_agent_job for progress.",
"inputSchema": {
"type": "object",
"properties": {
"planId": {
"type": "string",
"minLength": 1,
"description": "The exact plan id returned by preview_garden_plan."
}
},
"required": [
"planId"
],
"additionalProperties": false
}
}get_agent_jobAnswer
Get live progress for an asynchronous robot job started by a bulk action or approved garden plan. Omit jobId to inspect the active or most recent job.
View tool JSON
{
"name": "get_agent_job",
"kind": "answer",
"impl": "imperative",
"description": "Get live progress for an asynchronous robot job started by a bulk action or approved garden plan. Omit jobId to inspect the active or most recent job.",
"inputSchema": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"minLength": 1,
"description": "Job id returned by a bulk action or run_garden_plan. Omit for the latest job."
}
},
"additionalProperties": false
}
}set_crewAction
Set how many helper robots should be out with the lead. Helpers pop out of the lead and merge back into it. The count is declarative: set_crew({ helpers: 2 }) twice still yields two helpers. helpers: 0 recalls every helper. A helper that is mid-task finishes it first; converged: false means the crew is still settling.
View tool JSON
{
"name": "set_crew",
"kind": "act",
"impl": "imperative",
"description": "Set how many helper robots should be out with the lead. Helpers pop out of the lead and merge back into it. The count is declarative: set_crew({ helpers: 2 }) twice still yields two helpers. helpers: 0 recalls every helper. A helper that is mid-task finishes it first; converged: false means the crew is still settling.",
"inputSchema": {
"type": "object",
"properties": {
"helpers": {
"type": "integer",
"minimum": 0,
"maximum": 3,
"description": "Helpers to have standing besides the lead. 0 recalls everyone."
}
},
"required": [
"helpers"
],
"additionalProperties": false
}
}plant_seedAction
Plant a seed in a garden plot. If plotIndex is omitted, the first empty plot is used. New plants start healthy with moderate water.
View tool JSON
{
"name": "plant_seed",
"kind": "act",
"impl": "imperative",
"description": "Plant a seed in a garden plot. If plotIndex is omitted, the first empty plot is used. New plants start healthy with moderate water.",
"inputSchema": {
"type": "object",
"properties": {
"plantType": {
"type": "string",
"enum": [
"lettuce",
"carrot",
"tomato",
"lavender",
"sunflower",
"pumpkin"
],
"description": "Which seed to plant. See list_plant_types."
},
"plotIndex": {
"type": "integer",
"minimum": 0,
"maximum": 15,
"description": "Plot number 0-15, row-major from the near-left corner. Must be empty."
}
},
"required": [
"plantType"
],
"additionalProperties": false
}
}water_plantAction
Water one plant by id. Water decays over time; plants below ~15% water lose health and can wither. Avoid watering plants that are already near 100% — overwatering slowly harms them.
View tool JSON
{
"name": "water_plant",
"kind": "act",
"impl": "imperative",
"description": "Water one plant by id. Water decays over time; plants below ~15% water lose health and can wither. Avoid watering plants that are already near 100% — overwatering slowly harms them.",
"inputSchema": {
"type": "object",
"properties": {
"plantId": {
"type": "string",
"minLength": 1,
"description": "Unique id of the plant, e.g. \"plant-m4x8q2-a9f1\". See get_garden_state."
}
},
"required": [
"plantId"
],
"additionalProperties": false
}
}water_all_thirstyAction
Water every plant whose water level is below 35%. Efficient routine care in one call.
View tool JSON
{
"name": "water_all_thirsty",
"kind": "act",
"impl": "imperative",
"description": "Water every plant whose water level is below 35%. Efficient routine care in one call.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}harvest_plantAction
Harvest one plant by id. Only plants with readyToHarvest = true can be harvested; harvesting removes the plant, frees its plot, and adds produce to the basket.
View tool JSON
{
"name": "harvest_plant",
"kind": "act",
"impl": "imperative",
"description": "Harvest one plant by id. Only plants with readyToHarvest = true can be harvested; harvesting removes the plant, frees its plot, and adds produce to the basket.",
"inputSchema": {
"type": "object",
"properties": {
"plantId": {
"type": "string",
"minLength": 1,
"description": "Unique id of the plant, e.g. \"plant-m4x8q2-a9f1\". See get_garden_state."
}
},
"required": [
"plantId"
],
"additionalProperties": false
}
}harvest_all_readyAction
Harvest every plant that is currently ready. Frees those plots for replanting.
View tool JSON
{
"name": "harvest_all_ready",
"kind": "act",
"impl": "imperative",
"description": "Harvest every plant that is currently ready. Frees those plots for replanting.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}remove_plantAction
Remove a withered plant by id to free its plot. Only withered plants can be removed — living plants are never destroyed by this tool.
View tool JSON
{
"name": "remove_plant",
"kind": "act",
"impl": "imperative",
"description": "Remove a withered plant by id to free its plot. Only withered plants can be removed — living plants are never destroyed by this tool.",
"inputSchema": {
"type": "object",
"properties": {
"plantId": {
"type": "string",
"minLength": 1,
"description": "Unique id of the plant, e.g. \"plant-m4x8q2-a9f1\". See get_garden_state."
}
},
"required": [
"plantId"
],
"additionalProperties": false
}
}