# Example: Weather API capability
# This uses the free Open-Meteo API (no authentication required)
#
# SECURITY NOTE: This example uses a public API with no secrets.
# For APIs requiring authentication, use:
#   - keychain:name   (macOS Keychain)
#   - env:VAR_NAME    (environment variable)
# NEVER put actual API keys in YAML files.

fulcrum: "1.0"
name: check_weather
description: Check current weather conditions for a location using Open-Meteo API (free, no API key required)

schema:
  input:
    type: object
    properties:
      latitude:
        type: number
        description: Latitude coordinate
      longitude:
        type: number
        description: Longitude coordinate
    required: [latitude, longitude]
  output:
    type: object
    properties:
      temperature:
        type: number
        description: Current temperature in Celsius
      windspeed:
        type: number
        description: Wind speed in km/h
      weathercode:
        type: integer
        description: WMO weather code

providers:
  primary:
    service: rest
    cost_per_call: 0
    timeout: 30
    config:
      base_url: https://api.open-meteo.com
      path: /v1/forecast
      method: GET
      headers:
        Accept: "application/json"
      params:
        latitude: "{latitude}"
        longitude: "{longitude}"
        current_weather: "true"
      response_path: current_weather

cache:
  strategy: exact
  ttl: 300

auth:
  required: false

metadata:
  category: weather
  tags: [weather, forecast, free]
  cost_category: free
  execution_time: fast
  read_only: true
