Connect a place search to a weather forecast (/umbrella/) Agent concept ------------- Chained tools: geocode -> forecast. The page shows the exact request URL and trimmed JSON at each step, then a local yes/no/maybe rule. The page plays the agent's part with a fixed script; no AI model runs here. Network boundary ---------------- Live calls leave the visitor's browser only: - https://geocoding-api.open-meteo.com/v1/search - https://api.open-meteo.com/v1/forecast No server proxy. CSP allows only those Open-Meteo hosts (plus 'self'). Saved example ------------- If the API is blocked or fails, /umbrella/saved-example.json still completes the lesson. The page shows: "Showing a saved example." Class-mode check ---------------- node scripts/umbrella-class-mode.mjs Logs to docs/umbrella-class-mode-log.txt (30 geocode+forecast pairs / 60s). Credits ------- Weather data by Open-Meteo, CC BY 4.0. https://open-meteo.com/ https://creativecommons.org/licenses/by/4.0/ See LICENSE.txt on this path.