# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: 'Smoke test - OpenAI tool format with cross-provider transformation'

providers:
  # Test OpenAI tools with auto mode
  - id: 'exec:node ../scripts/echo-config.js'
    label: 'Auto tool choice'
    config:
      tools: &tools
        - type: function
          function:
            name: get_weather
            description: Get current weather for a location
            parameters:
              type: object
              properties:
                location:
                  type: string
                  description: City name
                unit:
                  type: string
                  enum: [celsius, fahrenheit]
              required:
                - location
        - type: function
          function:
            name: search_web
            description: Search the web for information
            parameters:
              type: object
              properties:
                query:
                  type: string
              required:
                - query
      tool_choice: auto

  # Test tool reuse with YAML alias and required mode
  - id: 'exec:node ../scripts/echo-config.js'
    label: 'Required tool choice'
    config:
      tools: *tools
      tool_choice: required

  # Test specific tool choice
  - id: 'exec:node ../scripts/echo-config.js'
    label: 'Specific tool choice'
    config:
      tools: *tools
      tool_choice:
        type: function
        function:
          name: get_weather

prompts:
  - 'What is the weather in {{location}}?'

tests:
  - vars:
      location: San Francisco
    assert:
      - type: is-json
