""" Execute the getWeather tool. Returns mock weather data for the given city and temperature units. """ function executeTool(toolCallId::String, args::Dict{String,Any}, signal::Union{Nothing,abortSignal}, onPartialResult::Function)::agentToolResult city = get(args, "city", "") units = get(args, "units", "celsius") temp = units == "fahrenheit" ? "72" : "22" unit_symbol = units == "celsius" ? "°C" : "°F" return agentToolResult( [textContent("Weather in $(city): Sunny, $(temp)$(unit_symbol)")], Dict{Any,Any}(), nothing, false ) end """ Define and return the getWeather agentTool. """ function getTool()::agentTool return agentTool( name = "getWeather", label = "Weather Lookup", description = "Fetch current weather and forecast for a given city.", inputSchema = Dict{String,Any}( "type" => "object", "properties" => Dict( "city" => Dict("type" => "string", "description" => "City and country, e.g., 'San Francisco, CA' or 'Tokyo, Japan'"), "units" => Dict("type" => "string", "enum" => ["celsius", "fahrenheit"], "default" => "celsius", "description" => "Temperature scale") ), "required" => ["city"] ), execute = executeTool, prepareArguments = nothing, validateRequiredArgs = nothing, parallelToolExecute = false ) end